41717466-Achizitii-LabVIEW

200
DAN SELIŞTEANU COSMIN IONETE EMIL PETRE DAN POPESCU DORIN ŞENDRESCU APLICAŢII LABVIEW PENTRU ACHIZIŢIA ŞI GENERAREA DATELOR Editura SITECH Craiova 2004

Transcript of 41717466-Achizitii-LabVIEW

Page 1: 41717466-Achizitii-LabVIEW

DAN SELIŞTEANU COSMIN IONETE EMIL PETRE DAN POPESCU

DORIN ŞENDRESCU

APLICAŢII LABVIEW PENTRU ACHIZIŢIA ŞI GENERAREA DATELOR

Editura SITECH Craiova 2004

Page 2: 41717466-Achizitii-LabVIEW
Page 3: 41717466-Achizitii-LabVIEW

3

PREFAŢĂ LabVIEW este un limbaj de programare grafică produs de National Instruments, SUA, prima variantă a limbajului fiind lansată pe piaţă în anul 1983. Denumirea limbajului LabVIEW provine din prescurtarea din limba engleză: Laboratory Virtual Instrument Engineering Workbench. Limbajul de programare este conceput pentru valorificarea facilităţilor interfeţelor grafice cu utilizatorul dezvoltate de sistemele de operare moderne. LabVIEW este un limbaj grafic prin modul în care este construit şi salvat codul sursă: nu există un cod bazat pe text ca în limbajele clasice, ci o diagramă a fluxului de date. Din acest motiv, LabVIEW este un limbaj des utilizat de către ingineri, care, în locul folosirii unui limbaj convenţional bazat pe text, preferă crearea şi vizualizarea grafică a fluxului de date.

LabVIEW este un mediu de programare destinat achiziţiei, analizei, prelucrării şi afişării datelor. Utilizarea acestui limbaj s-a remarcat în special în cazul instrumentaţiei de măsurare bazată pe tehnica de calcul. Principiul fundamental pe baza căruia este scris codul LabVIEW este fluxul de date: datele sunt trecute prin noduri în interiorul cărora programul determină ordinea de execuţie a diverselor funcţii. LabVIEW este un limbaj modular, un modul de program fiind numit Instrument Virtual (Virtual Instrument – VI). Un VI este un obiect care are intrări, procesează date şi furnizează ieşiri. Ordinea în care utilizatorul doreşte să prelucreze datele prin intermediul unor funcţii se poate realiza prin înlănţuirea mai multor VI-uri care au intrări şi ieşiri comune. Din punct de vedere al versiunilor LabVIEW existente în circulaţie, în mod uzual sunt folosite versiunile 4 - 7, ultima recent lansată de firma producătoare. Prezenta lucrare se bazează pe versiunile 4 şi 6 ale limbajului, care au fost achiziţionate de către Facultatea de Automatică, Calculatoare şi Electronică a Universităţii din Craiova.

Page 4: 41717466-Achizitii-LabVIEW

4

Bazele programării în LabVIEW au fost abordate de către autori în lucrarea [18] din referinţele bibliografice: Ghid de programare în LabVIEW. Aplicaţii pentru prelucrarea semnalelor, Tipografia Universităţii din Craiova, 2003. Noţiunile de bază privind programarea în LabVIEW pot fi însuşite şi prin studiul manualului de utilizare [22] sau prin parcurgerea lucrărilor [4], [7], [23], [24] din lista referinţelor bibliografice. Prezenta lucrare presupune că aceste cunoştinţe de bază despre LabVIEW sunt cunoscute.

Lucrarea de faţă îşi propune realizarea unor aplicaţii de achiziţie şi generare a datelor prin utilizarea unor sisteme de achiziţie a datelor bazate pe LabVIEW ca software de aplicaţie şi pe hardware-ul de achiziţie existent în dotarea laboratoarelor Facultăţii de Automatică, Calculatoare şi Electronică din Craiova.

Prin sistem de achiziţie a datelor se înţelege în sens larg un sistem de măsurare care permite vizualizarea şi/sau înregistrarea evoluţiei temporale a mai multor mărimi, analogice şi/sau numerice, poate implementa mai multe regimuri de achiziţie şi permite diverse prelucrări numerice. Prin completarea configuraţiei unui calculator (de regulă un calculator personal – PC) cu elemente din categoria interfeţelor de proces (plăci de achiziţie) se poate obţine un sistem de achiziţie a datelor. Un sistem de achiziţie astfel obţinut mai poartă numele de sistem de achiziţie a datelor de tip instrument virtual.

Placa de achiziţie este o placă de extensie care poate fi conectată intern prin instalarea directă într-un slot de extensie al calculatorului sau poate fi externă, caz în care este conectată la calculator printr-un cablu extern. Placa de achiziţie este caracterizată prin subsisteme specializate (sistemul intrărilor analogice, sistemul intrărilor numerice, sistemul ieşirilor analogice, sistemul ieşirilor numerice, sistemul de numărare/temporizare).

Prezenta lucrare utilizează hardware de achiziţie furnizat de firma National Instruments şi anume plăci de achiziţie AT-MIO-16H şi module de condiţionare a semnalului din seria 5B. Pentru cunoaşterea funcţionării plăcilor de achiziţie este prezentată (în anexă) traducerea manualului de utilizare editat de firma producătoare.

Deoarece prezentul volum abordează aplicaţii practice de achiziţie a datelor, pentru aprofundarea unor noţiuni teoretice privind sistemele de achiziţie a datelor, precum şi parcurgerea altor exemple de implementare practică a acestora, se recomandă lucrările [1], [3], [5], [8], [12], [14], [19], [20] din lista referinţelor bibliografice.

Page 5: 41717466-Achizitii-LabVIEW

5

Prezentul manual este structurat în 8 lucrări practice, care implementează aplicaţii de achiziţie şi generare a datelor, declanşarea achiziţiilor cu semnale de tip trigger, stocarea datelor în regim data logger, aplicaţii de achiziţie şi generare a semnalului audio (prin utilizarea plăcilor de sunet ca şi plăci de achiziţie). Lucrarea se adresează studenţilor Facultăţii de Automatică, Calculatoare şi Electronică, constituind un suport de curs şi îndeosebi de laborator pentru o serie de discipline, cum ar fi Sisteme de achiziţie şi interfeţe de proces; Semnale, circuite şi sisteme; Software industrial; Sisteme de operare şi limbaje în timp real; Procesarea numerică a semnalelor etc. Lucrarea poate fi utilă şi altor studenţi şi specialişti interesaţi de utilizarea unui software modern pentru aplicaţii complexe de achiziţie a datelor. Deoarece în lucrare sunt abordate în special achiziţia şi generarea datelor analogice, prezentul manual va fi continuat prin aplicaţii dezvoltate pentru intrări şi ieşiri numerice, precum şi pentru controlul transmisiilor seriale şi paralele. De asemenea, va fi abordată analiza şi proiectarea unor aplicaţii de timp real pentru conducerea proceselor.

Autorii

Page 6: 41717466-Achizitii-LabVIEW

6

CUPRINS Lucrarea nr. 1. Instrumente virtuale pentru achiziţii de date.

Intrări analogice. Achiziţii de date mono-punct 7 Lucrarea nr. 2. Intrări analogice. Achiziţii de date multi-punct 27 Lucrarea nr. 3. Controlul achiziţiilor de date cu semnale de tip

trigger 45 Lucrarea nr. 4. Instrumente virtuale pentru generarea datelor.

Ieşiri analogice. Generarea fără buffer a datelor 61 Lucrarea nr. 5. Ieşiri analogice. Generarea bufferată a datelor 71 Lucrarea nr. 6. Operaţii cu fişiere. Stocarea (data logging) şi

citirea datelor 89 Lucrarea nr. 7. Aplicaţie de măsurare şi achiziţie a temperaturii 109 Lucrarea nr. 8. Aplicaţii de achiziţie/generare a semnalului

audio (controlul intrărilor/ieşirilor plăcilor de sunet) 119

Anexa 1. Placa de achiziţie AT-MIO-16H

Manual de utilizare, National Instruments 139 Anexa 2. Amplificatorul de precizie pentru

termocuplul de tip J 195 Bibliografie 199

Page 7: 41717466-Achizitii-LabVIEW

7

LUCRAREA NR. 1

Instrumente virtuale pentru achiziţii de date. Intrări analogice. Achiziţii de date mono-punct

1. Tipuri de achiziţii de date 1.1. Achiziţii mono-canal şi multi-canal O placă de achiziţie poate realiza achiziţii de date pe un singur

canal sau pe mai multe canale: - achiziţie mono-canal (single-channel data acquisition) - achiziţie multi-canal (multiple-channel data acquisition) În cazul achiziţiei mono-canal se selectează un singur canal de

intrare analogică şi se setează o singură amplificare (care determină în funcţie de domeniul de intrare un domeniu efectiv de intrare – a se vedea subcapitolul de configurare a intrărilor analogice). La fiecare perioadă de eşantionare este realizată o singură conversie analog-numerică pe canalul respectiv.

În cazul achiziţiei multi-canal, placa de achiziţie scanează un set de canale de intrări analogice, fiecare cu propria sa amplificare (domeniu efectiv de intrare). În cadrul acestei metode, placa stochează o listă sub forma unei secvenţe care precizează canalele analogice care trebuie citite, precum şi amplificările setate pentru canalele respective. În timpul citirii, circuitul de intrări analogice realizează câte o conversie analog-numerică pentru fiecare canal analogic (fiecare pereche canal/amplificare) din secvenţa respectivă. Conversia analog-numerică este realizată o dată la fiecare perioadă de eşantionare. În timpul realizării conversiei analog-numerice curente, placa comută pe canalul analogic următor din secvenţă, astfel încât achiziţia să fie cât mai rapidă. Atunci când s-a ajuns la sfârşitul secvenţei, placa aşteaptă până la terminarea unui interval de citire înainte de a relua achiziţia canalelor din secvenţă. Canalele sunt citite în mod repetat la începutul fiecărui interval de citire până când numărul de eşantioane precizat de utilizator este achiziţionat.

1.2. Achiziţii cu trigger Achiziţiile de date pot fi startate pentru anumite aplicaţii la un

anumit moment de timp, fără o legătură directă cu evoluţia datelor

Page 8: 41717466-Achizitii-LabVIEW

8

respective (fără triggerare). Pentru alte aplicaţii, este necesară declanşarea achiziţiei de date analogice la momente de timp bine precizate (cu triggerare). De exemplu, dacă testăm răspunsul unei instalaţii la o intrare tip (treaptă, impuls etc.), intrarea de test respectivă poate fi utilizată şi pentru startarea achiziţiei de date. În caz contrar este necesară începerea achiziţiei înainte de aplicarea intrării respective, ceea ce determină un consum nejustificat de resurse.

Prin urmare, achiziţia de date poate începe în funcţie de condiţia sau starea unui semnal numeric sau analogic, utilizând o tehnică numită triggerare (declanşare). Un trigger este un eveniment care startează achiziţia datelor. Există două tipuri de triggerare: hardware (care poate fi analogică sau numerică) şi software.

Plăcile de achiziţie pot funcţiona în două moduri principale de achiziţie, în funcţie de apariţia evenimentului trigger, prin care se defineşte zona de interes din evoluţiile analizate:

modul posttrigger modul pretrigger

Modul posttrigger realizează achiziţia unui număr specificat de eşantioane după apariţia unui eveniment trigger, adică după recepţionarea unui semnal trigger (de sincronizare). După ce bufferul care stochează datele achiziţionate (de lungime specificată de utilizator) este plin, achiziţia este stopată.

În cadrul modului pretrigger datele sunt achiziţionate continuu, înainte şi după primirea unui semnal trigger. Datele sunt colectate într-un buffer precizat de utilizator până când placa recepţionează semnalul trigger. După aceasta, sistemul de achiziţie va mai colecta un număr specificat de eşantioane după care stopează achiziţia. Bufferul este tratat ca un buffer circular, adică după ce întregul buffer este completat, datele sunt stocate de la început prin suprascrierea datelor vechi. La terminarea achiziţiei, bufferul conţine eşantioane dinaintea şi după apariţia semnalului trigger. Numărul de eşantioane salvate în buffer depinde de lungimea acestuia (specificată de utilizator) şi de numărul specificat de eşantioane de achiziţionat după apariţia semnalului trigger.

1.3. Achiziţii mono-punct şi multi-punct Din punct de vedere al numărului de eşantioane achiziţionat

de către sistemul de achiziţie pentru o anumită aplicaţie, putem avea achiziţii mono-punct (single-point) şi achiziţii de puncte multiple

Page 9: 41717466-Achizitii-LabVIEW

9

(multiple-point). De exemplu, o achiziţie a unui singur eşantion, pe un singur canal (single-channel single-point) este o operaţie de achiziţie foarte simplă, care nu utilizează buffere. Software-ul de achiziţie citeşte o singură valoare (un singur eşantion) de la un canal de intrare şi furnizează imediat sistemului acea valoare. Un exemplu de astfel de achiziţie este monitorizarea periodică a nivelului unui lichid dintr-un rezervor. Traductorul, care converteşte nivelul într-o tensiune, este conectat (eventual printr-un circuit de condiţionare a semnalului) la unul dintre canalele de intrare analogică ale plăcii de achiziţie; atunci când se doreşte cunoaşterea nivelului din rezervor se iniţiază o achiziţie mono-canal mono-punct.

Dacă sunt necesare informaţii mono-punct de la mai multe surse (de exemplu, se doreşte şi cunoaşterea temperaturii lichidului din rezervor) se realizează o achiziţie mono-punct dar multi-canal (multiple-channel, single-point). Software-ul de achiziţie va executa o citire a tuturor canalelor de intrare specificate şi va furniza câte un eşantion de pe fiecare canal utilizat.

Observaţie: Achiziţia de date se poate realiza sub control software (software-timed), şi atunci tactul necesar controlului vitezei de achiziţie este furnizat de către ceasul sistemului de calcul (în acest caz controlul fiind afectat de posibile întreruperi), sau atunci când este necesară o mai mare precizie, achiziţia se realizează sub controlul ceasului de pe hardware-ul de achiziţie sau sub controlul unui ceas extern (hardware-timed).

Achiziţiile multiple de date (multi-point) pe un singur canal sau multi-canal se pot realiza fie prin utilizarea unei structuri software repetitive (de tip buclă) a unei achiziţii single-point, deci fără utilizarea unui buffer, metodă care este însă consumatoare de timp şi ineficientă, sau prin utilizarea metodelor cu bufferare. În funcţie de modul de utilizare al bufferelor pentru stocarea eşantioanelor achiziţionate, există tehnici cu buffer simplu (simple-buffer) şi tehnici cu buffer circular (circular-buffer). Acestea din urmă se bazează pe completarea unui buffer specificat de utilizator în mod continuu, de unde şi denumirea de buffer circular. Spre deosebire de tehnica cu buffer simplu, în cadrul acestei tehnici se apelează la un al doilea buffer, care preia datele vechi din primul buffer, înainte ca acestea să fie suprascrise.

Achiziţiile multi-punct reprezintă de fapt achiziţionarea datelor ca forme de undă (waveforms) – semnale variabile în timp.

Page 10: 41717466-Achizitii-LabVIEW

10

În diagrama din Fig. 1 este realizată o prezentare succintă a tipurilor de achiziţii de date (analogice).

Fig. 1. Tipuri de achiziţii de date

Achiziţii de date

Mono-punct (single-point) (achiziţia unui singur eşantion)

Multi-punct (multiple-point sau waveform acquisition)

Fără trigger

Cu trigger Hardware:

Software

-Analogic

-Numeric

Mod posttrigger

Mod pretrigger

Mono-canal (single-channel)

Multi-canal (multiple-channel)

Achiziţii ne-bufferate (non-buffered)şi fără sincronizare (non-timed)

Mono-canal (single-channel)

Multi-canal(multiple- channel)

Achiziţii cu structuri repetitive(control loops) (ne-bufferate)

Achiziţii bufferate

Cu buffer simplu(simple-buffer)

Cu buffer circular(circular-buffer)

-Software-timed

-Hardware-timed (cu ceas intern sau

extern)

(achiziţii hardware-timed)

Page 11: 41717466-Achizitii-LabVIEW

11

2. Instrumente virtuale LabVIEW pentru achiziţii de date

În LabVIEW controlul plăcilor de achiziţie se realizează cu ajutorul unor instrumente virtuale (VI) obţinute din lista de comenzi Functions, meniul DAQ. Lista de comenzi DAQ (Data Acquisition) conţine instrumente virtuale grupate în următoarele biblioteci (Fig. 2): Analog Input, Analog Output, Digital Input/Output, Counter, Calibration and Configuration, Signal Conditioning. La realizarea unor aplicaţii cu VI-urile de achiziţie trebuie respectat un principiu de bază şi anume o aranjare secvenţială a acestor instrumente (numite şi funcţii de achiziţie) în vederea unei executări coerente a programului. Spre exemplu, configurarea plăcii şi calibrarea sa se realizează înaintea citirii datelor. Programarea acestei aranjări se realizează printr-o înlănţuire de conexiuni numite task ID [in/out] (Fig. 3). Task ID este de fapt un număr generat de LabVIEW care codifică numărul plăcii de achiziţie şi numărul de grup după configurarea acestuia (prin grup înţelegând o colecţie de canale de intrare sau de ieşire sau porturi). Conexiunile de tip error se referă la erorile de execuţie apărute în diferite etape.

Fig. 2. Meniul Data Acquisition – DAQ

Fig. 3. Înlănţuirea logică a funcţiilor de achiziţii de date prin conexiuni task ID şi error

TaskID TaskID in TaskID in TaskID out

Page 12: 41717466-Achizitii-LabVIEW

12

2.1. Biblioteca de instrumente pentru intrări analogice Funcţiile pentru intrări analogice sunt grupate în patru clase

sau sub-biblioteci: Easy Analog Input VIs, Intermediate Analog Input VIs, Analog Input Utilities VIs, şi Advanced Analog Input VIs (Fig. 4).

Biblioteca Easy Analog Input VIs conţine instrumente executabile, de nivel înalt, capabile să realizeze operaţiuni de bază pentru intrări analogice. Instrumentele din biblioteca Easy Analog Input VIs sunt construite pe baza VI-urilor din biblioteca Intermediate Analog Input VIs, care la rândul lor sunt construite pe baza VI-urilor din biblioteca Advanced Analog Input VIs. Un instrument de tip Easy Analog Input VIs furnizează o interfaţă utilizator convenabilă pentru intrările analogice uzuale, pentru aplicaţii complexe fiind necesară folosirea instrumentelor din celelalte biblioteci.

Instrumentele de nivel intermediar pentru intrări analogice se pot găsi în biblioteca Intermediate Analog Input VIs. Aceste instrumente sunt construite pe baza instrumentelor fundamentale din Advanced Analog Input VIs. Instrumentele de nivel intermediar sunt flexibile în utilizare, asigurând în acelaşi timp majoritatea facilităţilor instrumentelor avansate.

Instrumentele din Analog Input Utilities VIs sunt tot instrumente de nivel intermediar şi oferă soluţii simple pentru situaţiile uzuale de folosire a intrărilor analogice.

Fig. 4. Biblioteca Analog Input

Easy Analog Input VIs

Advanced Analog Input VIs

Intermediate Analog Input VIs

Analog Input Utilities VIs

Page 13: 41717466-Achizitii-LabVIEW

13

Instrumentele avansate pentru achiziţia intrărilor analogice sunt grupate în Advanced Analog Input VIs. Aceste instrumente constituie interfaţa între software-ul de aplicaţie LabVIEW şi driverele NI-DAQ, constituind baza celorlalte VI-uri din meniul Analog Input. Atunci când se doreşte realizarea unei aplicaţii pentru achiziţia de date analogice instrumentele virtuale trebuie ordonate într-o secvenţă logică; aceasta conţine etape de configurare a plăcii, de lansare a achiziţiei, de citire a datelor şi de ştergere a acestora şi este prezentată în Fig. 4. Această secvenţă poate fi realizată prin utilizarea unor VI-uri de nivel intermediar, secvenţiate ca în Fig. 5. De asemenea, etapele din secvenţă corespunzătoare pot fi executate de un singur VI, ce aparţine de regulă bibliotecii Analog Input Utilities VIs.

Fig. 5. Secvenţa VI-urilor pentru achiziţia de date analogice

Instrumentele de achiziţie au o serie de parametri care permit

realizarea unor aplicaţii precizate. De regulă, aceşti parametri au valori ce corespund unei utilizări clasice a funcţiei. Diferenţa dintre parametrii primari şi parametrii secundari ai instrumentului este vizualizată în fereastra de ajutor (help) prin grosimea caracterelor. Parametrii primari (cei mai importanţi) apar îngroşaţi. Valorile implicite ale parametrilor (default) apar între paranteze.

Aşa cum s-a precizat în primul paragraf, achiziţiile de date pot fi de tip mono-punct sau multi-punct, mono-canal sau multi-canal. În funcţie de tipul achiziţiei care se realizează, pot fi folosite diferite VI-uri din biblioteca Analog Input.

2.2. Achiziţii de date mono-punct (single-point) Achiziţia mono-punct, a unui singur eşantion, pe un singur

canal (single-channel single-point) este o operaţie de achiziţie simplă,

Configurare placă (AI Config.vi)

Lansare achiziţie (AI Start.vi)

Citire date (AI Read.vi)

Ştergere date (AI Clear.vi)

Page 14: 41717466-Achizitii-LabVIEW

14

nesincronizată, care nu utilizează buffere – eşantionul achiziţionat este preluat direct de la placă, fără stocare intermediară în memoria calculatorului. Pentru operaţiile single-point single-channel simple se poate utiliza instrumentul virtual AI Sample Channel.vi, disponibil în sub-biblioteca Easy Analog Input VIs. AI Sample Channel.vi măsoară semnalul de pe canalul specificat şi furnizează valoarea citită şi scalată. Acest instrument virtual, cu precizarea terminalelor este prezentat în Fig. 6. Parametrul de intrare device reprezintă numărul plăcii de achiziţii de date utilizate (atunci când există o singură placă, device = 1), iar parametrul de intrare channel este numărul canalului de intrare analogică utilizat pentru achiziţie. High limit şi low limit sunt cea mai mare, respectiv cea mai mică valoare permisă pentru semnalul - în cazul de faţă un singur punct - care este achiziţionat. Ieşirea sample conţine valoarea scalată (în volţi) citită pe intrarea analogică specificată prin device şi channel.

O aplicaţie LabVIEW realizată cu acest VI este foarte simplă şi are diagrama din Fig. 7, eşantionul achiziţionat fiind afişat cu ajutorul unui indicator numeric (se poate folosi şi un indicator grafic).

În cazul în care sunt necesare informaţii mono-punct de la mai multe surse se realizează o achiziţie mono-punct dar multi-canal (multiple-channel single-point), prin citirea tuturor canalelor de intrare specificate şi furnizarea a câte unui eşantion de pe fiecare canal. Unul dintre instrumentele virtuale care se poate utiliza în acest caz este AI Sample Channels.vi, din sub-biblioteca Easy Analog Input VIs. AI Sample Channels.vi (Fig. 8) măsoară câte o singură tensiune (un singur punct) de la canalele specificate. Parametrii acestui VI sunt asemănători cu cei ai instrumentului AI Sample Channel.vi, cu deosebirea că parametrul channels permite precizarea unei liste cu canalele de pe care se face achiziţia şi parametrul de ieşire samples furnizează un vector care conţine valorile în volţi ale eşantioanelor citite de pe canalele specificate (câte un eşantion de pe fiecare canal). Domeniul de intrare permis pentru semnalele de intrare este definit în mod identic pentru toate canalele prin high limit şi low limit.

Fig. 6. Instrumentul AI Sample Channel.vi

Page 15: 41717466-Achizitii-LabVIEW

15

Fig. 7. Achiziţia mono-punct mono-canal cu AI Sample Channel.vi

Fig. 8. Instrumentul AI Sample Channels.vi

Fig. 9. Achiziţia mono-punct multi-canal cu AI Sample Channels.vi

Diagrama unei aplicaţii LabVIEW pentru achiziţia mono-

punct pe două canale cu VI-ul AI Sample Channels.vi este prezentată în Fig. 9. Aplicaţia utilizează funcţii Index Array pentru selectarea datelor de pe cele două canale şi indicatoare numerice pentru afişarea celor două eşantioane.

După cum s-a observat din cele două exemple prezentate anterior, folosirea unor instrumente de nivel înalt din sub-biblioteca

Page 16: 41717466-Achizitii-LabVIEW

16

Easy Analog Input VIs are anumite avantaje, cum ar fi: prezenţa unui singur VI în diagramă, număr mic de terminale, nu apar conexiuni de tip taskID şi error etc. Pe de altă parte, aceste VI-uri nu sunt flexibile, ceea ce înseamnă că programatorul nu are acces la facilităţi importante ale hardware-ului de achiziţie, cum ar fi stabilirea modului de triggerare sau achiziţia scanată (cu interval de scanare). În plus, instrumentele din Easy Analog Input VIs realizează totdeauna o reconfigurare la iniţializare, ceea ce determină micşorarea vitezei de procesare.

Atunci când se impun eficienţă şi viteză sporite, trebuie utilizate instrumente din sub-biblioteca Intermediate Analog Input VIs, care realizează configurarea achiziţiei o singură dată şi permit achiziţia continuă a datelor fără reconfigurare. De asemenea, VI-urile intermediare oferă flexibilitate, controlul erorilor şi eficienţă în dezvoltarea aplicaţiei de achiziţie. Instrumentele intermediare sunt recomandate pentru achiziţii de date multi-punct bufferate.

Un exemplu de utilizare a unui instrument de nivel intermediar pentru o achiziţie single-point este cel din Fig. 10, în care un instrument intermediar AI Single Scan.vi este cuplat cu un instrument intermediar AI Config.vi. Instrumentul AI Single Scan.vi poate fi utilizat pentru realizarea unei singure scanări, adică pentru citirea a câte unui eşantion de pe fiecare canal din lista specificată. Dacă se specifică un singur canal (prin AI Config.vi), atunci se realizează o achiziţie mono-punct mono-canal.

Ambele VI-uri de achiziţie utilizate în aplicaţia din Fig. 10 vor fi prezentate în cadrul analizei instrumentelor din sub-biblioteca de instrumente intermediare. În aplicaţia LabVIEW din Fig. 10, controlul care defineşte canalele de intrare este un vector de stringuri (şiruri de caractere), fiecare din aceste stringuri definind o listă cu canale de intrare (prin numerele canalelor, despărţite prin virgulă, de exemplu: 0, 3, 5). În cazul utilizării unui singur canal, se păstrează setarea implicită. Parametrul input limits este un vector (tablou uni-dimensional) de clustere, fiecare cluster conţinând două controale numerice care definesc high limit şi low limit corespunzătoare unui anumit canal de intrare (definite separat în exemplele anterioare). Din Fig. 10 se observă apariţia conexiunii task ID in / task ID out şi a conexiunii de eroare, analizate în Fig. 3. Indicatorul Voltage data conţine datele analogice citite, care în cazul achiziţiei mono-punct mono-canal reprezintă un singur eşantion de pe canalul specificat.

Page 17: 41717466-Achizitii-LabVIEW

17

Fig. 10. Achiziţie single-point cu instrumente de nivel intermediar

2.3. Instrumente virtuale de achiziţie intermediare În continuare vor fi descrise VI-urile intermediare pentru

achiziţia de date, şi anume cinci instrumente de nivel intermediar din biblioteca Intermediate Analog Input VIs şi două instrumente din biblioteca Analog Input Utilities VIs.

În Fig. 11 – 15 sunt prezentate instrumentele intermediare AI Config.vi, AI Start.vi, AI Read.vi, AI Single Scan.vi şi AI Clear.vi, cu terminalele de intrare şi de ieşire corespunzătoare. Se observă o serie de terminale comune care apar la toate instrumentele virtuale din figurile precizate. În Tabelul 1 sunt descrise pe scurt terminalele comune, cu menţiunea că fiecare VI poate avea terminale de intrare şi ieşire specifice a căror semnificaţie se desprinde fie din context fie se poate afla apelând la sistemul de help.

AI Config.vi realizează configurarea unei operaţiuni de intrare analogică pentru un set de canale de intrare specificat, prin configurarea hardware-ului şi alocarea unei memorii tampon (buffer) pentru datele analogice. AI Start.vi setează rata de scanare, numărul de scanări care se vor efectua, condiţiile de triggerare, după care startează achiziţia de date analogice. AI Read.vi citeşte datele în cadrul unei achiziţii bufferate. După cum s-a văzut în paragraful anterior, AI Single Scan.vi returnează rezultatul unei singure scanări corespunzătoare unui grup de canale specificat anterior. AI Clear.vi şterge task-ul de intrare analogică asociat cu taskID in.

Page 18: 41717466-Achizitii-LabVIEW

18

Fig. 11. Instrumentul AI Config.vi

Fig. 12. Instrumentul AI Start.vi

Fig. 13. Instrumentul AI Read.vi

Fig. 14. Instrumentul AI Single Scan.vi

Fig. 15. Instrumentul AI Clear.vi

Page 19: 41717466-Achizitii-LabVIEW

19

Tabelul 1 Denumire terminal

Descriere

device numărul conectorului plăcii de achiziţii de date. Pentru o singură placă AT-MIO, device = 1

channels (0) descrie canalele de intrare utilizate. Implicit are valoarea 0

task ID in identifică grupul şi tipul operaţiei I/O task ID out are aceeaşi valoare ca task ID in error in (no

error) descrie erorile care apar înainte de execuţia VI-ului respectiv. Dacă a apărut o eroare, VI-ul returnează valoarea erorii într-un cluster în error out. Implicit are valoarea "no error"

error out conţine informaţia despre erori. În cazul în care clusterul error in indică o eroare, clusterul error out va conţine aceeaşi informaţie. Dacă nu, error out descrie erorile apărute la execuţia VI-ului respectiv

buffer size (1000 scans)

mărimea memoriei tampon alocată pentru stocarea eşantioanelor (implicit 1000)

number of scans to acquire

numărul de scanări care se efectuează (implicit 1000)

scan rate (scan/sec)

frecvenţa de achiziţie (1000 de scanări pe secundă în lipsa precizării). Este echivalentă cu frecvenţa de eşantionare pe canalul respectiv

voltage data Este un tablou (o matrice) care conţine datele analogice achiziţionate

În Fig. 16 şi Fig. 17 sunt prezentate instrumentele AI

Waveform Scan.vi şi AI Continuous Scan.vi din sub-biblioteca Analog Input Utilities VIs, instrumente de nivel intermediar des utilizate în aplicaţii, o parte din terminalele de intrare şi de ieşire comune fiind descrise în Tabelul 1.

AI Waveform Scan.vi realizează numărul specificat de scanări cu rata de scanare specificată şi returnează toate datele achiziţionate. Achiziţia poate fi declanşată (triggerată) prin intermediul unui trigger.

AI Continuous Scan.vi realizează măsurarea în mod continuu (dar eşantionată în timp) a unui grup de canale, stochează datele într-

Page 20: 41717466-Achizitii-LabVIEW

20

un buffer circular şi returnează un număr specificat de date măsurate la fiecare apelare a VI-ului.

Fig. 16. Instrumentul AI Waveform Scan.vi

Fig. 17. Instrumentul AI Continuous Scan.vi

3. Exemple de achiziţii de date mono-punct

Rularea programelor de achiziţie şi/sau generare de date analogice se poate face doar în prezenţa unei plăci de achiziţie, care trebuie configurată corespunzător. În Anexa 1 este prezentată detaliat placa de achiziţie AT-MIO-16H a firmei National Instruments, placă pe care se bazează aplicaţiile din acest paragraf. Prelucrarea datelor numerice precum şi gestionarea interfeţelor de intrări/ieşiri analogice/numerice se face sub controlul pachetelor de programe LabVIEW şi al software-ului (driver) NI-DAQ pentru DOS/ Windows. Pentru utilizarea corectă a plăcii de achiziţie AT-MIO-16H este necesară parcurgerea atentă a descrierii modului de funcţionare a plăcii din Anexa 1, după care trebuie realizată configurarea acesteia în funcţie de aplicaţia dorită.

Page 21: 41717466-Achizitii-LabVIEW

21

3.1. Configurarea plăcii AT-MIO-16 Placa de achiziţie AT-MIO-16H are, din fabricaţie, o setare

iniţială (implicită), care se poate modifica în funcţie de situaţia reală în care este folosită. Placa de achiziţie AT-MIO-16H nu dispune de tehnologia plug and play. Cu alte cuvinte, sistemul de operare Windows nu poate detecta tipul plăcii de achiziţie şi nici nu se pot face setări software ale plăcii. Orice modificare a setărilor plăcii se face mai întâi prin dispunerea corespunzătoare a jumperelor pe placă şi apoi, printr-un program de configurare special, sistemul de operare este informat de toate aceste schimbări.

Placa AT-MIO-16H conţine 13 jumpere (ştrapuri) şi un comutator DIP pentru configurarea interfeţei cu magistrala AT şi setarea intrărilor şi ieşirilor analogice (Analog I/O settings). Comutatorul DIP este folosit pentru setarea adresei I/O de bază. Două jumpere sunt folosite pentru selectarea canalului de întrerupere şi pentru accesul direct la memorie (DMA – Direct Memory Access). Celelalte 11 jumpere rămase sunt folosite pentru a schimba configuraţia circuitelor de intrări şi ieşiri analogice (a se vedea Anexa 1 – Capitolul 3).

Pentru verificarea şi prezentarea modului de folosire a plăcii se poate lansa utilitarul NI-DAQ Configuration Utility (Fig. 18) din pachetul de programe al driverului NI-DAQ, instalat în prealabil pe calculatorul în care este poziţionată placa de achiziţie.

Fig. 18. Meniul principal al utilitarului de configurare NI-DAQ

Page 22: 41717466-Achizitii-LabVIEW

22

Din Fig. 18 rezultă că avem o singură placă de achiziţie (Device # 1) de tipul AT-MIO-16H9, care foloseşte adresa de bază 220H, canalele DMA 6 şi 7 şi nivelul de întrerupere 5. Prin apăsarea butonului de configurare/test din meniul principal se deschide o altă fereastră (Fig. 19) în care se poate realiza o verificare a setărilor şi o configurare a adresei de bază (care trebuie să corespundă cu setarea de pe placă). Prin acţionarea push-butonului Hardware (Fig. 19) se pot vizualiza/testa setările pentru intrările analogice (Fig. 20) şi ieşirile analogice (Fig. 21). Intrările analogice sunt setate pentru gama –5V…+5V, mod diferenţial, domeniul de intrare fiind corespunzător cu modulele de condiţionare a semnalelor (izolare galvanică) disponibile în laborator (seria 5B31-02 şi 5B41-02 – National Instruments). Ieşirile analogice sunt setate în domeniul -10V...+10V (bipolar).

Fig. 19. Setările pentru adresa de bază, DMA şi întreruperi

Fig. 20. Configurarea intrărilor analogice

Page 23: 41717466-Achizitii-LabVIEW

23

Fig. 21. Configurarea ieşirilor analogice

Pentru testarea configuraţiei plăcii şi pentru aplicaţiile de

achiziţii de date se va folosi o sursă de tensiune duală de tip IEMI - I4102 M de 2 x 40 V, 1.2 A şi un voltmetru de c.c. Sursa de c.c. va fi conectată la bornele 2, 3 ale modulului de intrare 5B41-02 (de bandă largă) de pe canalul de intrare analogică 0, situat pe rack-ul exterior. Voltmetrul va fi cuplat la ieşirea analogică 0 (pinii 20, 23 ai conectorului I/O al plăcii - a se vedea Anexa 1). Pentru testarea plăcii se va apăsa butonul Test (Fig. 19), ceea ce va avea ca rezultat apariţia ferestrei de test din Fig. 22. Pentru testarea intrării analogice de pe canalul 0 se va conecta sursa de tensiune din care se va furniza o tensiune (până în 5V). La apăsarea butonului Analog Input va fi afişată tensiunea citită de placă şi un semnal de eroare (0 în cazul funcţionării corecte) – Fig. 23.

Fig. 22. Fereastra de testare a intrărilor/ieşirilor analogice

Page 24: 41717466-Achizitii-LabVIEW

24

Fig. 23. Teste pentru intrarea analogică 0 şi pentru ieşirea analogică 0

Pentru testarea ieşirii analogice de pe canalul 0, se va

introduce în caseta Voltage o tensiune continuă (de exemplu 3V) şi se apasă butonul Analog Output. Pe voltmetrul de c.c. conectat la ieşirea 0 trebuie să fie citită tensiunea de 3V, iar în fereastra de test va fi afişat un semnal de eroare (0 în cazul funcţionării corecte) – Fig. 23. Dacă se doreşte testarea altor canale de intrare sau ieşire analogică trebuie făcute modificări corespunzătoare (conexiuni şi casete). 3.2. Achiziţia unei tensiuni de la o sursă După configurarea şi verificarea plăcii AT-MIO-16H, se poate construi o aplicaţie de achiziţie mono-punct a unei tensiuni de la o sursă exterioară. Achiziţia mono-punct, a unui singur eşantion, pe un singur canal (single-channel single-point) se poate realiza utilizând instrumentul virtual AI Sample Channel.vi, descris în subparagraful 2.2. AI Sample Channel.vi măsoară semnalul de pe canalul specificat şi furnizează valoarea citită şi scalată.

Aplicaţia LabVIEW are diagrama din Fig. 7, iar fereastra panou este prezentată în Fig. 24. Reamintim că parametrul de intrare device reprezintă numărul plăcii de achiziţii de date utilizate, iar parametrul de intrare channel este numărul canalului de intrare analogică utilizat pentru achiziţie. Ieşirea sample conţine valoarea scalată (în volţi) citită pe intrarea analogică specificată prin device: 1 şi channel: 0. Eşantionul achiziţionat poate fi afişat cu ajutorul unui indicator numeric şi/sau grafic (în Fig. 25 s-a realizat o rulare continuă a aplicaţiei pentru vizualizarea tensiunii cu Waveform Chart).

Page 25: 41717466-Achizitii-LabVIEW

25

Fig. 24. Achiziţia cu AI Sample Channel.vi a unei tensiuni continue

Fig. 25. Achiziţia mono-punct mono-canal cu AI Sample Channel.vi

3.3. Achiziţia mono-punct multi-canal a două tensiuni În cazul în care sunt necesare informaţii mono-punct de la mai

multe surse se realizează o achiziţie mono-punct dar multi-canal (multiple-channel single-point), prin citirea tuturor canalelor de intrare specificate şi furnizarea a câte unui eşantion de pe fiecare canal.

În Fig. 26 este prezentată fereastra panou a diagramei din Fig. 9, care permite achiziţia mono-punct a două tensiuni de pe două canale de intrare analogică. Pentru realizarea aplicaţiei este necesară conectarea a încă unei surse de tensiune la bornele 2, 3 ale modulului de izolare galvanică de pe canalul de intrare 1 (modul de tip 5B31).

Page 26: 41717466-Achizitii-LabVIEW

26

Fig. 26. Achiziţia mono-punct multi-canal cu AI Sample Channels.vi

Aplicaţia LabVIEW este construită în jurul instrumentului AI

Sample Channels.vi. Au fost utilizate suplimentar faţă de aplicaţia din Fig. 9 două indicatoare numerice circulare pentru afişarea tensiunilor de la cele două intrări. Se observă că indicatorul channels, de tip string, conţine o listă cu cele două canale de intrări analogice care sunt scanate prin intermediul instrumentului virtual de achiziţie.

4. Temă de laborator 4.1. Ce înţelegeţi prin achiziţie mono-punct, respectiv multi-punct? Dar prin achiziţie mono-canal, respectiv multi-canal? Ce înţelegeţi prin semnal de trigger? Ce tipuri de triggerare există? Ce înţelegeţi prin scan rate?

4.2. Identificaţi instrumentele virtuale pentru achiziţii de date din biblioteca Data Acquisition. Ce înţelegeţi prin conexiuni task ID şi error? Parcurgeţi cu atenţie VI-urile din sub-biblioteca Analog Input şi instrumentele intermediare din paragraful 2.3. Analizaţi semnificaţia VI-urilor şi a terminalelor acestora.

4.3. Implementaţi aplicaţia de achiziţie a unei tensiuni descrisă în paragraful 3.2, după configurarea plăcii AT-MIO-16 şi realizarea conexiunilor necesare (paragraful 3.1).

4.4. Dezvoltaţi o aplicaţie care să citească o tensiune de la o baterie sau de la o sursă de tensiune continuă, cu instrumente de nivel intermediar (Fig. 10), pe baza exemplului din paragraful 3.2.

4.5. Dezvoltaţi şi rulaţi aplicaţia de achiziţie a două tensiuni descrisă în paragraful 3.3.

4.6. Refaceţi aplicaţia mono-punct multi-canal de la punctul 4.5 utilizând instrumente de achiziţie de nivel intermediar.

Page 27: 41717466-Achizitii-LabVIEW

27

LUCRAREA NR. 2

Intrări analogice. Achiziţii de date multi-punct

După cum s-a precizat în lucrarea de laborator precedentă, din punct de vedere al numărului de eşantioane achiziţionat de către sistemul de achiziţie pentru o anumită aplicaţie, putem avea achiziţii mono-punct (single-point) şi achiziţii de puncte multiple (multi-point).

Achiziţiile multiple de date (multi-point) pe un singur canal sau multi-canal se pot realiza fie prin utilizarea unei structuri software repetitive (de tip buclă) a unei achiziţii single-point, deci fără utilizarea unui buffer, metodă care este însă consumatoare de timp şi ineficientă, sau prin utilizarea metodelor cu bufferare (simple-buffer sau circular-buffer). Achiziţiile multi-punct reprezintă de fapt achiziţionarea datelor ca forme de undă (waveforms) – semnale variabile în timp.

1. Achiziţia de date multi-punct cu utilizarea structurilor

repetitive (control loops) Pentru achiziţiile multi-punct se pot utiliza structuri repetitive

(bucle) de tip For sau While în care sunt conţinute aplicaţii de achiziţie single-point, fără buffere, sau se folosesc aplicaţii cu bufferare. Achiziţia cu structuri repetitive este lentă, dar se foloseşte în aplicaţii de conducere, atunci când după achiziţia unei valori corespunzătoare unui semnal de intrare (cum ar fi mărimea reglată) se generează o valoare corespunzătoare unui semnal de ieşire (mărimea de comandă), operaţia de achiziţie/generare continuând în acest mod pe tot parcursul funcţionării procesului condus.

Un exemplu de achiziţie repetată care utilizează instrumentele intermediare AI Config.vi şi AI Single Scan.vi incluse într-o buclă While este prezentat în VI-ul Cont Acq&Chart (immediate).vi din biblioteca de exemple Examples\ daq\ anlogin\ anlogin.llb a LabVIEW. Prin intermediul buclei While VI-ul realizează o serie de scanări single-point, ceea ce înseamnă că practic avem un control software al vitezei de achiziţie (achiziţie software-timed). Diagrama asociată acestei aplicaţii este prezentată în Fig. 1.

Page 28: 41717466-Achizitii-LabVIEW

28

Fig. 1. Aplicaţia Cont Acq&Chart (immediate).vi

Aşa cum s-a afirmat în prima lucrare, avantajul utilizării

instrumentelor intermediare constă în faptul că nu este necesară configurarea canalelor de fiecare dată când se doreşte achiziţia datelor. Pentru ca instrumentul AI Config.vi să fie apelat o singură dată, acesta se plasează în afara buclei, aşa cum se observă în Fig. 1. AI Config.vi configurează canalele, setează limitele de intrare şi generează un taskID. După aceasta, pasează taskID şi clusterul de eroare buclei While. LabVIEW apelează AI Single Scan.vi pentru realizarea unei scanări şi transferă datele obţinute unui VI numit My Single-Scan Processing.vi (care poate lipsi din aplicaţie şi care permite realizarea unor prelucrări ale datelor achiziţionate). Datele sunt transferate apoi prin intermediul unei funcţii Build Array la un indicator grafic de tip Waveform chart în scopul vizualizării. Funcţia Wait Until Next ms Multiple (metronom) controlează tactul buclei While. După ce utilizatorul introduce valoarea ratei de scanare, aplicaţia converteşte această valoare în milisecunde şi trece această valoare convertită funcţiei Wait Until Next ms Multiple. Bucla va fi executată pe tactul dat de rata de scanare. Bucla se va termina la apăsarea butonului de Stop sau la apariţia unei erori.

Exemplul prezentat utilizează controlul vitezei (ratei) de achiziţie printr-un mecanism software. Întrucât viteza de achiziţie este controlată prin intermediul ceasului sistemului de calcul, în sistem pot

Page 29: 41717466-Achizitii-LabVIEW

29

să apară o serie de întreruperi datorită intervenţiei utilizatorului, care pot duce la scăderea preciziei controlului soft a unei aplicaţii de achiziţie. De asemenea, existenţa unor structuri de calcul (prelucrare) determină apariţia unor întârzieri care trebuie luate în consideraţie. Pentru a îmbunătăţi precizia în cazul controlului software, trebuie redus la minimum numărul şi dimensiunea indicatoarelor grafice utilizate (refresh-ul afişajului monitorului determină apariţia întreruperilor, ceea ce afectează viteza de execuţie a buclelor).

Dacă aplicaţiile sunt pretenţioase, se va utiliza controlul hardware al vitezei de achiziţie (hardware-timed control loops), care conduce la creşterea preciziei achiziţiei şi permite obţinerea unor viteze de achiziţie mult mai mari. În acest caz, achiziţia nu mai este întreruptă de intervenţia utilizatorului. Achiziţia controlată hardware plasează în mod automat datele în memoria FIFO a plăcii de achiziţie la intervale de timp determinate de semnalele de tact de pe placă. Un exemplu de achiziţie controlată hardware, ne-bufferată, cu structură repetitivă este prezentat în aplicaţia Cont Acq&Chart (hw timed).vi din biblioteca Examples\daq\anlogin\anlogin.llb a LabVIEW.

2. Achiziţia de date multi-punct bufferată

Una din posibilităţile de realizare a achiziţiilor multi-punct de la unul sau mai multe canale este de a utiliza tehnici fără buffer într-o manieră repetitivă, aşa cum s-a văzut în paragraful anterior. Această tehnică este ineficientă, mare consumatoare de timp şi în plus nu există un control al intervalului de timp dintre eşantioane sau al intervalului de timp de transfer între canale. Pentru realizarea unei achiziţii multi-punct eficientă trebuie folosite buffere de date. Achiziţia multi-punct mai este denumită achiziţie de forme de undă (waveforms). În funcţie de modul de utilizare a datelor achiziţionate există două tehnici de achiziţie bufferată multi-punct: achiziţie cu buffer simplu şi achiziţie cu buffer circular.

2.1. Achiziţia multi-punct cu buffer simplu Modul de transfer bufferat al datelor presupune că LabVIEW

transferă datele de la hardware-ul de achiziţie în memorie la anumite intervale de timp. Pentru o achiziţie bufferată, în cadrul VI-ului trebuie specificat numărul de eşantioane care vor fi achiziţionate şi numărul de canale de la care se preiau aceste eşantioane. Pe baza

Page 30: 41717466-Achizitii-LabVIEW

30

acestor două informaţii, LabVIEW alocă un buffer în memorie pentru stocarea unui număr de puncte egal cu numărul de eşantioane pe canal multiplicat cu numărul de canale. Pe măsură ce se desfăşoară achiziţia, bufferul este umplut cu date. Atunci când este folosit un buffer simplu, datele din buffer nu sunt accesibile până când LabVIEW nu achiziţionează toate eşantioanele. După aceasta, datele din buffer pot fi analizate, stocate pe harddisc, afişate sau prelucrate.

Pentru achiziţia bufferată a unei singure forme de undă de la un singur canal (achiziţie multi-punct mono-canal), cea mai simplă cale este de a utiliza instrumentul AI Acquire Waveform.vi (Fig. 2) din sub-biblioteca Easy Analog Input VIs, aşa cum se observă în Fig. 3. Pentru acest VI trebuie precizate numărul plăcii, canalul, numărul de eşantioane care se doreşte a fi achiziţionat de pe canalul respectiv şi frecvenţa de eşantionare (echivalentă cu rata de scanare pentru un singur canal). Se poate seta amplificarea utilizând high limit şi low limit. Forma de undă obţinută este vizualizată cu un Waveform graph. Perioada de eşantionare reală este inversa frecvenţei de eşantionare reală, care poate fi diferită de frecvenţa de eşantionare setată la intrarea VI-ului, în funcţie de performanţele hardware-ului. Instrumentul de nivel înalt permite o programare uşoară dar nu există facilităţi cum ar fi setarea triggerului, a semnalului de tact etc.

Pentru achiziţia bufferată a mai multor forme de undă, adică achiziţia multi-punct multi-canal, se poate utiliza, de exemplu, instrumentul AI Acquire Waveforms.vi (Fig. 4), tot din biblioteca Easy Analog Input VIs. Acest VI este asemănător cu AI Acquire Waveform.vi, dar permite achiziţia de la mai multe canale. Se poate construi o aplicaţie asemănătoare cu cea precedentă, cu precizarea unei liste cu canalele de intrare folosite, iar ieşirea instrumentului (terminalul waveforms) furnizează o matrice care conţine datele achiziţionate de la canalele specificate. Pentru afişarea formelor de undă obţinute de pe fiecare canal se pot utiliza funcţii Index Array ca în aplicaţia din Fig. 9 – Lucrarea de laborator nr. 1, urmate de indicatoare grafice de tip Waveform graph.

Fig. 2. Instrumentul AI Acquire Waveform.vi

Page 31: 41717466-Achizitii-LabVIEW

31

Fig. 3. Achiziţia multi-punct mono-canal cu AI Acquire Waveform.vi

Fig. 4. Instrumentul AI Acquire Waveforms.vi

Pentru asigurarea unei flexibilităţi sporite, achiziţia multi-

punct bufferată utilizează instrumente de nivel intermediar. Aceste instrumente, prezentate în Lucrarea de laborator nr. 1, permit controlul optim al achiziţiei, cum ar fi, de exemplu, citirea numai a unei părţi din datele achiziţionate şi plasate în buffer. Instrumentele intermediare trebuie conectate într-o anumită ordine (a se vedea Fig. 5 – Lucrarea de laborator nr. 1) iar pentru a identifica operaţiunea de achiziţie şi pentru a executa VI-urile în ordinea corectă trebuie realizate conexiunile taskID şi error. Prin folosirea VI-urilor intermediare, se pot configura: triggerul, semnalul de tact pentru achiziţie etc. şi se poate controla fiecare etapă a achiziţiei.

În Fig. 5 este prezentată diagrama unei aplicaţii de achiziţie bufferată multi-punct multi-canal care utilizează instrumente de nivel intermediar. Cu instrumentul AI Config.vi, se configurează diferiţii parametri de achiziţie, cum ar fi canalele care sunt citite, mărimea bufferului etc. În AI Start.vi se specifică parametrii utilizaţi pentru începerea achiziţiei şi anume numărul de scanări, frecvenţa de scanare şi setările de trigger. În AI Read.vi se specifică parametrii folosiţi

Page 32: 41717466-Achizitii-LabVIEW

32

pentru citirea datelor din bufferul cu date achiziţionate. În final, aplicaţia utilizează AI Clear.vi pentru dezafectarea bufferelor şi celorlalte resurse folosite pentru achiziţie prin invalidarea task ID. Dacă apare o eroare la execuţia acestor VI-uri, programul o pasează prin conexiunea error până la instrumentul General Error Handler.vi, care generează o descriere a erorilor apărute în procesul de achiziţie. Se observă că doar o parte din terminalele de intrare şi de ieşire ale VI-urilor sunt utilizate, restul fiind lăsate la valorile lor implicite. Datele achiziţionate sunt afişate cu ajutorul unui indicator grafic de tip Waveform Graph, cu opţiunea Transpose Array activată, fiind posibilă vizualizarea datelor primite de la mai multe canale (plotare multiplă).

După cum se cunoaşte, multe din sistemele de achiziţie utilizează aşa-numita eşantionare secvenţială, cu un singur CAN şi mutliplexoare, ceea ce înseamnă că acelaşi CAN este folosit pentru mai multe canale de intrare. De aici rezultă că frecvenţa de eşantionare maximă pe canal este egală cu frecvenţa de eşantionare maximă a plăcii împărţită la numărul de canale.

Pentru aceste plăci, rata de scanare introdusă la intrarea VI-urilor este de fapt frecvenţa de eşantionare care se doreşte a fi obţinută pe un canal, iar aceasta poate fi cel mult frecvenţa de eşantionare maximă a plăcii împărţită la numărul de canale utilizate.

O aplicaţie similară cu cea din Fig. 5, dar în care se utilizează un singur instrument virtual AI Waveform Scan.vi, instrument de nivel intermediar (a se vedea Fig. 16 – Lucrarea de laborator nr. 1) din biblioteca Analog Input Utilities VIs, este prezentată în Fig. 6.

Fig. 5. Achiziţia bufferată multi-punct cu VI-uri de nivel intermediar

Page 33: 41717466-Achizitii-LabVIEW

33

Fig. 6. Achiziţia simple-buffer multi-punct cu AI Waveform Scan.vi

Trebuie precizat că aplicaţiile de achiziţie bufferată prezentate

anterior sunt executate pe un semnal de tact furnizat de placa de achiziţie, adică hardware timed, ceea ce asigură o achiziţie rapidă şi precisă.

Observaţie: Din punct de vedere al transferului datelor din exterior până la utilizator, achiziţia bufferată a datelor poate fi descrisă pe scurt, după cum urmează. Semnalul analogic care trebuie achiziţionat este preluat de către hardware-ul de achiziţie pe unul din canalele analogice prin intermediul amplificatorului de instrumentaţie şi al convertorului analog-numeric. După ce este convertit în formă numerică, semnalul este plasat în memoria FIFO (first-in first-out) a hardware-ului de achiziţie, care păstrează datele până când acestea pot fi transferate către calculator. Datele sunt transferate către calculator prin intermediul sistemului de întreruperi sau prin DMA (Direct Memory Access) şi sunt stocate într-un buffer al calculatorului (o zonă de memorie). Mărimea bufferului este dimensionată prin instrumentul AI Config.vi. Achiziţia este declanşată de către AI Start.vi, iar bufferul este citit prin intermediul AI Read.vi, care transferă datele din bufferul calculatorului, după ce acesta este completat, într-un buffer al LabVIEW, de unde acestea pot fi afişate sau prelucrate. Dacă se doreşte scrierea datelor achiziţionate într-un fişier, se pot utiliza VI-uri din biblioteca Functions/File I/O.

Page 34: 41717466-Achizitii-LabVIEW

34

2.2. Achiziţia multi-punct cu buffer circular Tehnicile de achiziţie cu buffer simplu se pot utiliza în multe

aplicaţii, însă dacă trebuie vizualizate sau procesate porţiuni din date imediat ce acestea sunt achiziţionate, trebuie setat şi folosit un buffer circular. În cazul acestei tehnici, porţiuni din datele stocate în buffer sunt citite din acesta în timp ce este completat cu alte date. Prin utilizarea bufferului circular, hardware-ul de achiziţie poate fi setat să achiziţioneze date în mod continuu în background, în timp ce LabVIEW citeşte datele achiziţionate din buffer. Bufferul circular diferă de un buffer simplu doar prin modul în care LabVIEW plasează şi recuperează datele din buffer. Bufferul circular este umplut cu date, ca un buffer obişnuit, dar când ajunge la sfârşitul bufferului, LabVIEW se întoarce la începutul acestuia şi reia completarea cu date, suprascriind datele existente. Prin urmare, datele sunt citite în mod continuu. Instrumentul virtual folosit va citi datele sub formă de blocuri, de la o anumită locaţie din buffer, în timp ce datele intră în buffer începând cu altă locaţie, astfel încât să nu fie suprascrise date care nu au fost citite din buffer. Tehnica de achiziţie cu buffer circular poate fi aplicată doar cu instrumente intermediare sau avansate.

La folosirea bufferului circular există două probleme posibile: VI-ul poate citi date din buffer mai repede decât acesta este scris, sau VI-ul nu poate citi datele din buffer mai rapid decât sunt suprascrise datele. În primul caz LabVIEW aşteaptă sosirea datelor ce trebuie citite, în timp ce în al doilea caz VI-ul trimite un mesaj de eroare care avertizează că anumite date au fost suprascrise şi pierdute (overflow error) – datele din memoria FIFO a plăcii vor fi suprascrise.

Datele achiziţionate prin tehnica cu buffer circular pot fi puse la dispoziţia aplicaţiei imediat ce acestea sunt achiziţionate – de exemplu, pentru afişarea lor (în aşa-numitul pseudo - timp real). Singurele diferenţe majore care apar în ferestrele diagramă ale aplicaţiilor LabVIEW cu buffer circular faţă de cele cu buffer simplu sunt: modul de setare a terminalului de intrare number of scans to acquire al instrumentului AI Start.vi (0 pentru achiziţie continuă), şi apelarea repetată a instrumentului AI Read.vi pentru citirea datelor. Aceste setări pot fi aplicate pe exemplul de achiziţie multi-punct cu buffer simplu din Fig. 5. Astfel, diagrama pentru o achiziţie cu buffer circular derivată din această aplicaţie este prezentată în Fig. 7. Se observă că se achiziţionează date cu o rată de 1000 de eşantioane pe secundă utilizând un buffer care poate stoca 5000 de eşantioane.

Page 35: 41717466-Achizitii-LabVIEW

35

Fig. 7. Achiziţia în mod continuu multi-punct cu buffer circular Aplicaţia este utilă în cazul monitorizării datelor de la intrare

pentru o perioadă îndelungată (în mod continuu). În aplicaţia din Fig. 7, instrumentul AI Config.vi setează

canalele şi mărimea bufferului, apoi AI Start.vi iniţiază achiziţia de date din background şi specifică rata de scanare (cu number of scans to acquire setat la 0 pentru achiziţie în mod continuu). În interiorul buclei While, AI Read.vi citeşte în mod repetat blocuri de date din buffer, a căror dimensiune este dată de terminalul number of scan to read al AI Read.vi, care nu mai este la valoarea sa implicită -1: citirea tuturor datelor din buffer, ci este setat la numărul de eşantioane care se doreşte a fi citite o dată şi puse la dispoziţia aplicaţiei. În aplicaţia dată, blocurile au dimensiunea egală cu maximul dintre 1000 de eşantioane şi dimensiunea scan backlog. Această alegere este efectuată prin utilizarea unei funcţii Max & Min (meniul Comparison). Aplicaţia poate funcţiona şi fără această funcţie, dar aceasta este utilă pentru controlul dimensiunii scan backlog, care arată câte eşantioane au rămas în bufferul circular.

Instrumentul virtual creat prin diagrama din Fig. 7 citeşte şi afişează date în mod continuu (cu un indicator Waveform chart) până la apariţia unei erori sau până la apăsarea butonului stop.

La aplicaţiile de achiziţie cu buffer circular este posibilă apariţia unei erori de tip overwrite (cod – 10846), care înseamnă că datele nu sunt citite suficient de repede din bufferul calculatorului de către VI - şi prin urmare datele noi vor fi suprascrise în buffer peste

Page 36: 41717466-Achizitii-LabVIEW

36

cele necitite încă, sau a unei erori overflow (cod –10845) care arată că datele nu pot fi preluate suficient de rapid din memoria FIFO a plăcii către buffer, ceea ce înseamnă că datele din memoria FIFO vor fi suprascrise înainte de a fi transferate.

Pentru prevenirea erorii overwrite se poate mări numărul de eşantioane citite de AI Read.vi (number of scan to read) sau se micşorează rata de scanare sau se măreşte dimensiunea bufferului. Pentru prevenirea erorii overflow trebuie folosit transferul DMA care este mai rapid sau se micşorează rata de scanare sau se utilizează alt hardware de achiziţie (placă cu memorie FIFO mai mare şi/sau calculator mai rapid).

O aplicaţie asemănătoare care foloseşte însă instrumentul AI Continuous Scan.vi din Analog Input Utilities VIs este cea din Fig. 8. Terminalul de iteraţie al buclei While este legat la terminalul de iteraţie al VI-ului de achiziţie, pentru a evita configurarea repetată a achiziţiei. Achiziţia este oprită la apăsarea butonului Stop sau la apariţia unei erori. Condiţia booleană de terminare a achiziţiei este de asemenea conectată la terminalul clear acquisition al VI-ului (astfel încât să fie true la ultima iteraţie).

Fig. 8. Achiziţia continuă (buffer circular) cu AI Continuous Scan.vi Pentru aprofundarea problemelor legate de achiziţia datelor

analogice se pot analiza şi rula exemple din directorul Examples/Daq cum ar fi Getting Started Analog Input.vi. Pentru achiziţii multi-punct cu buffer circular se pot analiza şi rula VI-uri cum ar fi: Cont Acq & Chart (buffered).vi, similară cu aplicaţia din Fig. 7, Cont Acq & Graph (buffered).vi, Cont Acq to File (scaled).vi etc.

Page 37: 41717466-Achizitii-LabVIEW

37

Achiziţiile single-point şi multi-point descrise în paragrafele anterioare sunt startate la momente de timp aleatoare în raport cu datele achiziţionate. Atunci când este necesară declanşarea achiziţiei la un anumit moment de timp trebuie utilizate în mod corespunzător semnale de trigger hardware (analogic sau numeric) sau software.

3. Exemple de achiziţii de date multi-punct Pentru implementarea exemplelor din acest paragraf trebuie

configurată şi verificată placa AT-MIO-16H conform indicaţiilor din Lucrarea de laborator nr. 1 şi din Anexa 1.

3.1. Achiziţia multi-punct cu structuri repetitive Aplicaţia din acest subparagraf constă în achiziţia multi-punct

bazată pe o buclă While a semnalelor provenite de la un generator de semnal tip Kabid KZ1404 (sau Versatester E0502) aflat în dotarea laboratorului. Generatorul poate furniza semnale de tip dreptunghiular, triunghiular sau sinusoidal între 0.5 Hz şi 1 MHz. Pentru realizarea aplicaţiei se conectează ieşirea generatorului de semnal la bornele 2, 3 ale modulului de intrare 5B41-02 (de bandă largă) de pe canalul de intrare analogică 0, situat pe rack-ul exterior.

Pentru achiziţia semnalului de la generator va fi folosit VI-ul Cont Acq&Chart (immediate).vi din biblioteca de exemple Examples\ daq\ anlogin\ anlogin.llb a LabVIEW (diagrama este prezentată în Fig. 1). Acest VI foloseşte o tehnică fără buffer, cu buclă While, pe baza instrumentelor intermediare AI Config.vi şi AI Single Scan.vi.

În Fig. 9 este prezentată fereastra panou a aplicaţiei în cazul achiziţiei unui semnal dreptunghiular, cu frecvenţa de 10 Hz. Frecvenţa de eşantionare (scan rate – pentru un singur canal) este de 100 de eşantioane pe secundă. Amplitudinea semnalului şi offset-ul pot fi modificate din butoanele corespunzătoare ale generatorului.

Exemplul prezentat utilizează controlul vitezei de achiziţie prin software (software timing). Aşa cum s-a specificat în primul paragraf, în acest caz pot exista întreruperi datorită intervenţiei utilizatorului. Pentru exemplificare, în Fig. 10 este prezentată achiziţia unui semnal sinusoidal de 10 Hz, cu acelaşi VI, dar în condiţiile efectuării în timpul achiziţiei a unor operaţii diverse cum ar fi mişcarea mouse-lui, închiderea sau deschiderea unor aplicaţii etc. Se observă cum toate aceste operaţii afectează calitatea operaţiei de achiziţie a datelor.

Page 38: 41717466-Achizitii-LabVIEW

38

Fig. 9. Achiziţia multi-punct repetată a unui semnal dreptunghiular

Fig. 10. Achiziţia unui semnal sinusoidal (software timed)

Page 39: 41717466-Achizitii-LabVIEW

39

Dacă se utilizează un VI cu control hardware al vitezei de achiziţie (hardware-timed control loops), achiziţia nu mai este întreruptă de intervenţia utilizatorului – a se vedea Fig. 11, în care acelaşi semnal este achiziţionat în aceleaşi condiţii, utilizând însă VI-ul Cont Acq&Chart (hw timed).vi (achiziţie controlată hardware, ne-bufferată, cu structură repetitivă) din aceeaşi bibliotecă. Pentru detalii privind modul de achiziţie sub controlul ceasului de pe placă (în alte aplicaţii poate fi utilizat şi un semnal de ceas extern) se poate parcurge legenda Show VI Info a instrumentului virtual.

Fig. 11. Achiziţia unui semnal sinusoidal (hardware timed)

3.2. Achiziţia multi-point cu buffer simplu a unui semnal

Pentru achiziţia bufferată a unui semnal sinusoidal de la generatorul de semnal (conectat ca în paragraful anterior), se poate utiliza o aplicaţie bazată pe AI Acquire Waveform.vi. Diagrama aplicaţiei este prezentată în Fig. 12, iar fereastra panou în Fig. 13.

Semnalul sinusoidal achiziţionat are o frecvenţă de 50 Hz, iar frecvenţa de eşantionare (scan rate) de 1000 de eşantioane/sec. Bufferul este de 100 de eşantioane, care sunt puse la dispoziţie pentru

Page 40: 41717466-Achizitii-LabVIEW

40

afişare sau alte prelucrări după încheierea achiziţiei. Pentru afişare este utilizat un Waveform Graph scalat pe axa timpului în funcţie de perioada de eşantionare reală.

Fig. 12. Achiziţia cu buffer simplu folosind AI Acquire Waveform.vi

Fig. 13. Achiziţia simplu bufferată cu AI Acquire Waveform.vi

Page 41: 41717466-Achizitii-LabVIEW

41

Din Fig. 14 se poate observa importanţa alegerii corecte a frecvenţei de eşantionare – acelaşi semnal sinusoidal de 50 de Hz este achiziţionat cu 100 de eşantioane pe secundă. Bufferul a fost dimensionat la 10 eşantioane (pentru a obţine o reprezentare echivalentă cu exemplul precedent pe axa timpului). Se observă că semnalul nu mai are alura sinusoidală (de fapt frecvenţa de eşantionare a fost aleasă la limită din punct de vedere al teoremei Nyquist, dar insuficient de mare pentru a reda forma în domeniul timp a semnalului original).

Fig. 14. Achiziţia cu buffer simplu a unui semnal - subeşantionare

3.3. Achiziţia multi-punct cu buffer circular a unui semnal

Acelaşi semnal sinusoidal de 50 Hz din aplicaţia anterioară, furnizat de generatorul de semnal disponibil în laborator, va fi achiziţionat prin intermediul unei aplicaţii cu instrumente intermediare, care utilizează un buffer circular (paragraful 2.2 – Fig. 7). Aplicaţia are diagrama din Fig. 15 şi fereastra panou din Fig. 16. Bufferul utilizat are dimensiunea de 5000 de eşantioane, iar rata de scanare este de 500 de eşantioane/sec. Datele achiziţionate în mod

Page 42: 41717466-Achizitii-LabVIEW

42

continuu sunt puse imediat la dispoziţia utilizatorului. Pentru afişarea datelor au fost utilizate două indicatoare grafice: un Waveform Chart şi un Waveform Graph. Semnalul sinusoidal achiziţionat poate fi prelucrat în funcţie de necesităţi – de exemplu se poate filtra cu ajutorul unor filtre numerice FIR sau IIR (pentru detalii vezi lucrarea Ghid de programare în LabVIEW. Aplicaţii pentru prelucrarea semnalelor – inclusă în referinţele bibliografice), filtre disponibile în LabVIEW în cadrul meniului Functions, submeniul Analysis, grupul Filters.

Fig. 15. Achiziţia multi-punct cu buffer circular a unui semnal –

instrumente de nivel intermediar

Acelaşi semnal poate fi achiziţionat şi prelucrat cu diverse instrumente virtuale din bibliotecile LabVIEW, de exemplu, Spectrum Analyser din Examples \ Analysis \ measure \ daqmeas.llb – Fig. 17. Acest VI, pe lângă afişarea formei în domeniul timp a semnalului achiziţionat, realizează şi o analiză spectrală, care permite vizualizarea conţinutului în frecvenţă al semnalului (pe scară liniară sau logaritmică, cu utilizarea ferestrelor temporale etc.). Chestiuni teoretice şi aplicaţii LabVIEW pentru analiza semnalelor pot fi consultate în lucrarea Ghid de programare în LabVIEW. Aplicaţii pentru prelucrarea semnalelor – a se vedea referinţele bibliografice. Pentru informaţii suplimentare privind funcţionarea VI-ului Spectrum Analyser se poate parcurge legenda Show VI Info a instrumentului.

Page 43: 41717466-Achizitii-LabVIEW

43

Fig. 16. Achiziţia multi-punct cu buffer circular a unui semnal

Fig. 17. Achiziţia şi analiza spectrală a unui semnal sinusoidal

Page 44: 41717466-Achizitii-LabVIEW

44

În Fig. 17 se poate observa evoluţia în domeniul timp a semnalului sinusoidal achiziţionat şi spectrul semnalului în domeniul frecvenţă, fiind vizualizată componenta de 50 Hz, precum şi o componentă de c.c. de amplitudine mică, datorată offset-ului nenul, setat la generatorul de semnal cuplat la placa de achiziţie AT-MIO-16H. În fereastra panou a instrumentului sunt disponibile o serie de setări hardware – cum ar fi limitele semnalului achiziţionat, tipul de trigger etc., precum şi setări ale frecvenţei de eşantionare, tipuri de ferestre temporale, setări de display etc.

Observaţie: Pentru clarificarea unor concepte teoretice privind eşantionarea semnalelor şi alegerea frecvenţei de eşantionare se pot consulta lucrările [6], [11], [12], [16], [17] din bibliografie. 4. Temă de laborator

4.1. Ce tipuri de achiziţie multi-punct cunoaşteţi şi care sunt diferenţele dintre ele?

4.2. Implementaţi aplicaţia prezentată în paragraful 3.1, Fig. 9, 10, 11, pentru achiziţia repetată a unor semnale sinusoidale, dreptunghiulare, triunghiulare, cu diferite amplitudini şi frecvenţe, utilizând controlul software sau hardware al vitezei de achiziţie.

4.3. Dezvoltaţi o aplicaţie de achiziţie simplu bufferată a 500 de eşantioane ale unui semnal sinusoidal, utilizând un generator de semnal şi placa AT-MIO-16H (paragraful 3.2). Refaceţi aplicaţia utilizând instrumente de nivel intermediar (Fig. 5, Fig. 6). Care este influenţa ratei de scanare asupra achiziţiei?

4.4. Să se realizeze achiziţia cu buffer circular şi vizualizarea în mod continuu a unor semnale sinusoidale şi dreptunghiulare pe baza aplicaţiei din Fig. 15, 16. Modificaţi parametrii buffer size, number of scan to read, scan rate şi explicaţi rezultatele achiziţiei.

4.5. Dezvoltaţi un VI care să realizeze achiziţia multi-punct cu buffer circular a datelor de la două canale – canalul 0: semnal sinusoidal de la generatorul de semnal, canalul 1: o tensiune continuă de la o sursă de semnal.

4.6. Să se refacă aplicaţia de la punctul 4.4. pe baza VI-ului AI Continuous Scan.vi (Fig. 8), iar semnalul sinusoidal achiziţionat să fie filtrat cu ajutorul unui filtru numeric FIR sau IIR. Să se vizualizeze rezultatele prelucrării sinusoidelor de diverse frecvenţe.

4.7. Să se ruleze VI-ul Spectrum Analyser prezentat în Fig. 17, pentru semnale sinusoidale provenite de la generatorul de semnal disponibil. Să se realizeze analiza spectrală şi să se urmărească influenţa frecvenţei de eşantionare asupra spectrului şi formei în domeniul timp.

Page 45: 41717466-Achizitii-LabVIEW

45

LUCRAREA NR. 3

Controlul achiziţiilor de date cu semnale de tip trigger

1. Tipuri de triggerare Aşa cum s-a discutat în lucrările de laborator anterioare – a se

vedea diagrama din Fig. 1, lucrarea de laborator nr. 1 – pentru anumite aplicaţii achiziţiile de date pot fi declanşate la un anumit moment de timp, fără o legătură directă cu evoluţia datelor respective (fără triggerare). Există aplicaţii, pentru care declanşarea achiziţiei de date analogice trebuie realizată la momente de timp bine precizate (cu triggerare). De exemplu, dacă se testează răspunsul unei instalaţii la o intrare tip (treaptă, impuls etc.), intrarea de test respectivă poate fi utilizată şi pentru startarea achiziţiei de date. În caz contrar este necesară începerea achiziţiei înainte de aplicarea intrării respective, ceea ce determină un consum nejustificat de resurse.

Prin urmare achiziţia de date poate fi declanşată în funcţie de condiţia sau starea unui semnal numeric sau analogic, utilizând o tehnică numită triggerare (declanşare). Un trigger este un eveniment care startează achiziţia datelor. Există două tipuri de triggerare: hardware (care poate fi analogică sau numerică) şi software.

Plăcile de achiziţie pot funcţiona în două moduri principale de achiziţie, în funcţie de apariţia evenimentului trigger, prin care se defineşte zona de interes din evoluţiile semnalelor achiziţionate:

modul posttrigger modul pretrigger

Modul posttrigger realizează achiziţia unui număr specificat de eşantioane după apariţia unui eveniment trigger, adică după recepţionarea unui semnal trigger (de declanşare). Achiziţia este stopată în momentul în care bufferul care stochează datele achiziţionate (de lungime specificată de utilizator) este plin,.

În cazul modului pretrigger datele sunt achiziţionate continuu, înainte şi după primirea unui semnal trigger. Datele sunt colectate într-un buffer precizat de utilizator până când placa recepţionează semnalul trigger. După aceasta, sistemul de achiziţie va mai colecta un număr specificat de eşantioane după care achiziţia este stopată.

Page 46: 41717466-Achizitii-LabVIEW

46

Bufferul este tratat ca un buffer circular, adică după ce întregul buffer este completat, datele sunt stocate de la începutul bufferului prin suprascrierea datelor vechi. La încheierea achiziţiei, bufferul conţine eşantioane atât dinaintea cât şi după apariţia semnalului trigger. Numărul de eşantioane salvate în buffer depinde de lungimea acestuia (specificată de utilizator) şi de numărul specificat de eşantioane de achiziţionat după apariţia semnalului trigger.

După cum se observă din definiţiile anterioare, semnalele de trigger se utilizează doar în cazul achiziţiilor de date bufferate.

1.1. Triggerarea hardware Triggerarea hardware permite setarea momentului de start al

achiziţiei şi colectarea datelor de la un anumit moment de timp în raport cu apariţia unui semnal trigger. Există două tipuri de triggerare hardware: numerică şi analogică.

Triggerarea numerică Un trigger numeric este de regulă un semnal de tip TTL cu

două nivele discrete: nivel înalt şi nivel jos. Atunci când semnalul trece din nivel înalt în nivel jos apare un front coborâtor (descrescător sau descendent), iar când trecerea este inversă un front crescător (ascendent). Achiziţia analogică poate fi startată la apariţia unui front crescător sau descrescător al semnalului trigger. De exemplu, în Fig. 1 achiziţia este startată pe frontul crescător al unui semnal trigger numeric.

În Fig. 2 este prezentată o diagramă a modului de achiziţie posttrigger cu utilizarea unui semnal trigger numeric. În acest exemplu, un dispozitiv extern trimite un trigger hardware-ului de achiziţie. Imediat după primirea semnalului şi după îndeplinirea condiţiilor de triggerare (de exemplu apariţia frontului crescător al semnalului), placa de achiziţie începe colectarea datelor.

Triggerarea analogică Semnalul analogic de tip trigger se conectează pe unul din

canalele de intrări analogice ale plăcii de achiziţie. Placa monitorizează canalul semnalului trigger şi aşteaptă îndeplinirea condiţiilor de triggerare. Placa poate fi configurată să aştepte îndeplinirea unei condiţii pentru semnalul trigger, cum ar fi, de exemplu, un anumit nivel al semnalului. După identificarea condiţiei respective, care trebuie îndeplinită de către triggerul analogic, placa declanşează achiziţia. Pentru exemplificare, în Fig. 3, un trigger

Page 47: 41717466-Achizitii-LabVIEW

47

analogic este setat să starteze achiziţia de date pe panta descrescătoare (negativă) a semnalului, atunci când semnalul atinge valoarea 18 (semnalul trigger analogic poate fi, de exemplu, o temperatură, convertită într-o tensiune, dar condiţia de triggerare poate fi exprimată, prin soft, şi în unităţi de temperatură).

Fig. 1. Semnal trigger de tip numeric

Fig. 2. Diagrama achiziţiei de date cu trigger numeric

Fig. 3. Semnal trigger de tip analogic

Semnal TTL

Front crescător Iniţiere achiziţie date

conectat la pini de tip STARTTRIG sau EXTTRIGai conectorului I/O al plăcii de achiziţie

Dispozitivextern

Hardware de achiziţie

Dispozitivextern

Hardware de achiziţie

Date analogice

Semnal trigger numeric

Hardware-ul de achiziţie aşteaptă până la îndeplinirea condiţiilor de către semnalul trigger numeric

18

0

Nivelul şi panta semnalului declanşează achiziţia datelor

t

Page 48: 41717466-Achizitii-LabVIEW

48

În Fig. 4 este prezentată diagrama pentru o achiziţie posttrigger cu un semnal trigger analogic, similară cu diagrama din Fig. 2, corespunzătoare triggerului numeric.

Fig. 4. Diagrama achiziţiei de date cu trigger analogic 1.2. Triggerarea software Triggerarea software presupune simularea unui trigger

hardware prin utilizarea unei rutine software. Această formă de declanşare a achiziţiei este folosită în situaţiile în care nu sunt disponibile semnale trigger hardware (sau placa de achiziţie nu este prevăzută cu facilitatea de triggerare hardware).

Hardware-ul de achiziţie este setat să colecteze date, dar nu le returnează decât atunci când datele respective îndeplinesc condiţiile de recuperare (conditional retrieval - triggerul software). Software-ul de achiziţie scanează datele şi realizează o comparaţie a acestora cu condiţiile de triggerare, dar nu stochează datele decât atunci când acestea îndeplinesc specificaţiile cerute.

În Fig. 5 este prezentată o diagramă a evenimentelor care apar în cazul unei triggerări software. Pointerul de poziţionare citire/căutare parcurge bufferul până când găseşte locaţia la care datele îndeplinesc condiţiile de triggerare. Offset-ul indică locaţia de la care software-ul începe citirea datelor în raport cu poziţia de citire/căutare. Un offset negativ indică necesitatea unei achiziţii de tip pretrigger (achiziţie înainte de îndeplinirea condiţiilor de triggerare); un offset pozitiv indică o achiziţie de tip posttrigger (achiziţie după îndeplinirea condiţiilor de triggerare).

Dispozitivextern

Hardware de achiziţie

Dispozitivextern

Hardware de achiziţie

Date analogice

Semnal trigger analogic

Hardware-ul de achiziţie aşteaptă până la îndeplinirea condiţiilor de către semnalul trigger analogic

Page 49: 41717466-Achizitii-LabVIEW

49

Fig. 5. Diagrama unei achiziţii de date cu triggerare software

2. Utilizarea LabVIEW pentru achiziţii de date triggerate Pentru realizarea unei aplicaţii LabVIEW pentru achiziţii de

date triggerate, trebuie utilizate instrumente virtuale intermediare sau avansate, care au facilităţi pentru semnale trigger. Aşa cum s-a precizat şi în prima lucrare de laborator, instrumentele virtuale de

Page 50: 41717466-Achizitii-LabVIEW

50

achiziţie trebuie ordonate într-o secvenţă logică care conţine etape de configurare a plăcii, de lansare a achiziţiei, de citire a datelor şi de ştergere a acestora, secvenţă prezentată în Fig. 6. Spre deosebire de achiziţia fără triggerare, în acest caz se aşteaptă apariţia semnalului trigger înainte de a citi datele analogice.

Fig. 6. Secvenţa VI-urilor pentru achiziţia de date cu triggerare

Instrumentul intermediar AI Start.vi, ale cărui terminale sunt prezentate în Fig. 7, în afara funcţiei de startare a achiziţiei permite şi configurarea semnalului trigger hardware, iar AI Read.vi (Fig. 8), pe lângă funcţia de citire a datelor poate seta şi triggerarea software (conditional retrieval).

Triggerarea hardware AI Start.vi realizează pe lângă lansarea achiziţiei şi setarea

semnalului trigger hardware. Astfel, VI-ul apelează un instrument virtual avansat (AI Trigger Config.vi) care, în funcţie de valoarea terminalului trigger type, setează în mod corespunzător triggerul hardware. Dacă trigger type este 0, atunci AI Start.vi anulează triggerarea; în caz contrar setează tipul specificat de trigger: 1 – trigger analogic, 2 – trigger numeric (A), 3 – trigger numeric (A şi B – de start şi stop), 4 – scan clock gating – permite ca un semnal de la o sursă externă să oprească sau să pornească ceasul care furnizează tactul de scanare şi astfel să stopeze sau să continue achiziţia.

Configurare placă (AI Config.vi)

Lansare achiziţie (AI Start.vi)

Citire date (AI Read.vi)

Ştergere date (AI Clear.vi)

Trigger? (hard)

Nu

Da

Page 51: 41717466-Achizitii-LabVIEW

51

Fig. 7. Instrumentul AI Start.vi

Parametrul edge or slope stabileşte dacă achiziţia va fi

declanşată pe frontul coborâtor sau crescător al triggerului numeric sau pe panta pozitivă sau negativă a triggerului analogic (triggerul numeric sau analogic este ales prin setarea corespunzătoare a parametrului trigger type). Astfel, dacă edge or slope este 0, setarea implicită nu este modificată, dacă este 1 atunci este selectat frontul crescător pentru trigger numeric, respectiv pantă pozitivă pentru trigger analogic, iar dacă edge or slope este 2 atunci este selectat front coborâtor pentru trigger numeric sau pantă negativă pentru trigger analogic.

Terminalul pretrigger scans reprezintă numărul de scanări care vor fi salvate în buffer înainte de apariţia semnalului trigger (implicit 0, ceea ce înseamnă că LabVIEW nu salvează nimic înainte de apariţia triggerului).

Parametrul analog chan & level determină sursa şi nivelul semnalului trigger analogic (pentru trigger type = 1). Acest parametru este un cluster care conţine doi parametri: trigger channel – canalul analogic de intrare care este sursa triggerului analogic şi level – valoarea tensiunii (implicit 0 V) pe care trebuie să o atingă semnalul provenit de la sursa analogică, pentru declanşarea achiziţiei (tipul pantei este furnizat de parametrul de intrare edge or slope).

Pentru detalii privind toate terminalele de intrare şi de ieşire ale instrumentului AI Start.vi se poate consulta meniul Online help al VI-ului.

Triggerarea software În situaţia în care hardware-ul de achiziţie nu este prevăzut cu

facilitatea de trigger hardware, triggerul se poate simula prin intermediul unui software corespunzător; mai exact se poate utiliza

Page 52: 41717466-Achizitii-LabVIEW

52

aşa numitul trigger software sau conditional retrieval, care permite analiza soft a unui semnal din cadrul datelor ce sunt achiziţionate şi în funcţie de valoarea acestui semnal se startează citirea datelor. Pentru triggerarea software este necesar ca în memorie să se implementeze un buffer circular; fiecare eşantion achiziţionat este verificat pentru a se vedea dacă îndeplineşte condiţiile de triggerare. Atunci când condiţiile sunt îndeplinite, LabVIEW începe citirea datelor. AI Read.vi permite realizarea setărilor necesare pentru triggerarea software.

Fig. 8. Instrumentul AI Read.vi

Terminalul de intrare conditional retrieval permite

specificarea condiţiilor de triggerare, condiţii care vor fi verificate de către VI în bufferul cu date achiziţionate. De fapt îndeplinirea unei condiţii de triggerare presupune ca un semnal analogic achiziţionat să atingă un anumit nivel (pantă pozitivă sau negativă). Căutarea începe de la locaţia specificată prin parametrul read/search position (pointerul de citire/căutare). După ce VI-ul găseşte în buffer datele care atestă îndeplinirea condiţiei de triggerare, acesta va permite citirea datelor şi furnizarea lor de la locaţia respectivă plus offset-ul.

Terminalul conditional retrieval este un cluster care conţine mai mulţi parametri: mode – activează sau dezactivează triggerul software (0 – nu modifică setarea anterioară, 1 – off, 2 – on); channel index – specifică acele canale pe care VI-ul caută datele care îndeplinesc condiţia de triggerare (implicit canalul 0); slope – specifică panta semnalului; level – specifică nivelul semnalului, exprimat în volţi, căutat de către VI (implicit 0 V); hysteresis – specifică fereastra de tensiune pe care semnalul trebuie să o parcurgă la atingerea nivelului cerut de către condiţia de triggerare (acţionează ca un filtru); skip count – indică numărul de condiţii de triggerare neluate în considerare înainte de declanşarea citirii datelor; offset – specifică locaţia de la care VI-ul începe citirea datelor relativ la

Page 53: 41717466-Achizitii-LabVIEW

53

pointerul care indică îndeplinirea condiţiei de triggerare (offset negativ înseamnă pretriggerare, iar offset pozitiv posttriggerare).

Detalii privind terminalele de intrare şi de ieşire, precum şi valorile acestora, pot fi găsite prin consultarea meniului Online help al instrumentului AI Read.vi.

Observaţie: Achiziţiile de date triggerate pot fi dezvoltate şi cu alte VI-uri de nivel intermediar sau avansat. Un exemplu în acest sens îl constituie instrumentul AI Waveform Scan.vi din biblioteca Analog Input/ Analog Input Utilities. Acesta are avantajul că poate fi utilizat singur într-o structură de achiziţie. Acest VI de nivel intermediar permite realizarea de achiziţii cu triggerare hardware, iar setările de trigger se realizează compact prin parametrul de intrare de tip cluster trigger and clock.

3. Exemple de achiziţii de date triggerate 3.1. Achiziţii de date cu trigger analogic Deoarece doar achiziţiile de date bufferate pot fi declanşate prin utilizarea de semnale trigger, aplicaţiile care pot fi dezvoltate sunt cele multi-punct, care utilizează buffer simplu sau buffer circular. În cele ce urmează, va fi reluat exemplul de achiziţie bufferată continuă multi-punct (cu buffer circular) bazat pe instrumente intermediare, exemplu dezvoltat în lucrarea de laborator nr. 2 – diagrama din Fig. 15. După cum se va vedea, pentru implementarea unei achiziţii triggerate trebuie efectuate numai câteva schimbări în setarea triggerului. În cazul unui semnal trigger hardware, aceste schimbări vizează instrumentul AI Start.vi, iar în cazul unui trigger software, instrumentul AI Read.vi. Pentru a implementa un trigger hardware analogic, instrumentul AI Start.vi va trebui conectat în mod corespunzător prin setarea terminalelor trigger type, edge or slope şi analog channel & level. Pentru a crea cu uşurinţă controalele necesare acestor setări se poziţionează mouse-ul (instrumentul de cablare) pe terminalele corespunzătoare din diagramă, se efectuează clic cu butonul din dreapta al mouse-ului şi din meniul care apare se selectează Create Control. Această operaţiune conduce la apariţia controalelor implicite ce trebuie conectate la terminalele respective; ceea ce rămâne de făcut este înlocuirea valorilor implicite, dacă este cazul, cu cele necesare aplicaţiei.

Page 54: 41717466-Achizitii-LabVIEW

54

Parametrul trigger type va fi setat la valoarea 1 (analog dacă s-au creat controalele după procedura de mai sus); terminalul edge or slope va fi setat în funcţie de panta triggerului analogic – de exemplu 2 pentru pantă negativă (falling dacă s-au creat controalele după procedura de mai sus); terminalul analog channel & level este un cluster care conţine parametrul trigger channel – numărul canalului utilizat pentru triggerul analogic (un string ce conţine, de exemplu, caracterul 0 dacă triggerul analogic este furnizat pe canalul 0) şi parametrul level – nivelul de declanşare a achiziţiei, de exemplu 2 V. Ferestrele LabVIEW corespunzătoare acestei aplicaţii, cu setările de trigger efectuate mai sus, sunt prezentate în Fig. 9, 10. Achiziţia de date pe canalul 1 se va declanşa în momentul în care semnalul analogic cuplat la intrarea 0 a plăcii va scădea sub 2.0 V. Datele vor fi achiziţionate în mod continuu (buffer circular). Se observă că aplicaţia de achiziţie triggerată nu diferă de aplicaţia de achiziţie din lucrarea 2, Fig. 15, decât prin setările de trigger efectuate la AI Start.vi. În plus, terminalul channels al instrumentului AI Config.vi trebuie setat pe ambele canale de achiziţie: 0 şi 1.

Trebuie precizat faptul că utilizarea unui anumit tip de trigger depinde esenţial de tipul plăcii de achiziţie şi de aceea trebuie consultat în prealabil manualul de utilizare al plăcii. Pentru placa AT-MIO-16, nu se permite triggerarea analogică, dar poate fi utilizată triggerarea numerică sau triggerarea software.

Fig. 9. Achiziţie continuă de date cu triggerare hardware analogică

Page 55: 41717466-Achizitii-LabVIEW

55

Fig. 10. Fereastra panou a aplicaţiei de achiziţie cu trigger analogic

3.2. Achiziţii de date cu trigger numeric

Pentru a exemplifica acest tip de triggerare va fi folosit exemplul precedent, de achiziţie continuă bufferată cu instrumente intermediare. Achiziţia triggerată numeric se activează prin modificarea corespunzătoare a doi parametri ai instrumentului AI Start.vi: trigger type şi edge or slope. Trigger type va fi setat pe digital A (valoarea 2) iar edge or slope pe falling (valoarea 2).

Terminalul analog channel & level, utilizat în paragraful anterior, nu se va mai seta (va fi lăsat la valoarea implicită). Fereastra diagramă a acestei aplicaţii este similară cu cea prezentată în Fig. 9, cu precizarea că terminalul analog channel & level nu mai este conectat. În fereastra panou (Fig. 11) parametrii de triggerare se setează conform celor de mai sus.

Pentru rularea aplicaţiei, pe canalul de intrare analogică 0 al plăcii AT-MIO-16H va fi conectată ieşirea unui generator de semnal de tip Kabid KZ1404 (sau Versatester E0502).

Page 56: 41717466-Achizitii-LabVIEW

56

Fig. 11. Exemplu de achiziţie continuă de date cu triggerare numerică

Mai exact, ieşirea generatorului va fi conectată la bornele 2, 3

ale modulului de intrare 5B41-02 (de bandă largă) de pe canalul de intrare analogică 0, situat pe rack-ul exterior. Generatorul va fi setat pe semnal sinusoidal, de frecvenţă 10 Hz, amplitudine 2 sau 3 V. Rata de scanare va fi stabilită la 200 de eşantioane/secundă.

Semnalul de trigger numeric – un semnal de tip TTL – va fi furnizat pe pinul STARTTRIG* al conectorului I/O (pinul 38 – a se vedea Anexa 1 – paragraful de Conexiuni pentru semnale de tact şi sincronizare destinate achiziţiei de date). Semnalul TTL este furnizat de un generator PULSE GENERATOR TR-0361 aflat în dotarea laboratorului. La pinul STARTTRIG* se conectează ieşirea OUT a generatorului, cu comutatorul FREQ pe poziţia EXT. Prin apăsarea butonului SINGLE PULSE al generatorului va fi furnizat semnalul TTL necesar.

Pentru vizualizarea în prealabil a semnalului de trigger, acesta se poate conecta la intrarea analogică 0 şi prin utilizarea unui VI de achiziţie (de exemplu Cont Acq&Chart (buffered).vi) se pot face setările de nivel, lăţime a pulsului etc.

Page 57: 41717466-Achizitii-LabVIEW

57

Observaţie: Dacă nu se dispune de un aparat extern care să furnizeze semnalul TTL cerut pentru triggerare, acesta se poate simula. Pentru aceasta se poate dezvolta un VI simplu utilizând, de exemplu, AO Update Channel.vi, instrument care să furnizeze pe ieşirea 0 a plăcii AT-MIO-16 o tensiune de 5 V (rulare continuă). Ieşirea analogică 0 (pinul 20 al conectorului I/O) se conectează direct la pinul 38 al aceluiaşi conector – pinul STARTRIG*. Prin coborârea tensiunii furnizate pe ieşirea 0 spre 0 V (cu ajutorul unui control corespunzător) se va simula astfel semnalul de trigger necesar.

La rularea aplicaţiei, achiziţia de date va fi declanşată numai la apariţia semnalului de trigger numeric – TTL (pe frontul coborâtor).

Trebuie precizat că această achiziţie este de tip posttrigger. Pentru achiziţia pretrigger trebuie utilizat un semnal STOPTRIG – pinul 39 şi o setare corespunzătoare a terminalului pretrigger scans al instrumentului AI Start.vi (declanşarea achiziţiei este realizată soft sau hard cu semnalul STARTTRIG*, iar la apariţia semnalului STOPTRIG – front crescător – se mai achiziţionează numărul de eşantioane specificat).

3.3. Achiziţii de date cu trigger software

Pentru plăcile de achiziţie fără facilităţi de triggerare analogică se poate utiliza triggerarea software care simulează într-un fel semnalul trigger analogic.

Aplicaţia de achiziţie a datelor cu buffer circular utilizată în paragrafele anterioare va fi acum prelucrată pentru setarea unei triggerări software. Astfel, instrumentul AI Start.vi nu mai este conectat la terminalele specifice de trigger hardware (sunt lăsate configuraţiile implicite), în schimb este realizată setarea corespunzătoare a terminalului conditional retrieval al instrumentului AI Read.vi. Acest cluster trebuie completat cu parametrii: mode (2 – on: activare trigger software); channel index (canalul de căutare: 1); slope (panta semnalului – de exemplu falling); level (de exemplu 2.0 V); hysteresis (de exemplu 0.2 V); skip count (0); offset (0).

Prin aceste setări a fost simulat triggerul analogic din paragraful 3.1. Diagrama acestei aplicaţii este prezentată în Fig. 12. Prin utilizarea triggerării software nu este posibilă achiziţia continuă de date după ce au fost îndeplinite condiţiile de trigger. Pentru a acoperi necesităţile aplicaţiei se poate utiliza un buffer cât mai mare. După cum se observă din Fig. 12, terminalul number of scans to

Page 58: 41717466-Achizitii-LabVIEW

58

acquire al instrumentului AI Start.vi este setat la 0, ceea ce înseamnă că se va executa (hardware) o achiziţie continuă de date până când sunt îndeplinite condiţiile de triggerare (sau până când este atinsă limita de timp dacă aceste condiţii nu sunt îndeplinite), după care se returnează spre aplicaţie datele care îndeplinesc condiţiile de triggerare (în limita bufferului precizat).

Fig. 12. Achiziţie de date cu triggerare software

Pentru rularea aplicaţiei vom conecta o sursă de tensiune

duală de tip IEMI - I4102 M de 2 x 40 V, 1.2 A pe canalul de intrare analogică 1 şi un generator de semnal Kabid KZ1404 pe canalul de intrare analogică 0 (prin modulele de condiţionare 5B31-02 respectiv 5B41-02). Generatorul va fi setat pe semnal sinusoidal de 1 Hz, amplitudine 2 sau 3 V. Sursa de tensiune va fi setată pe 4 V. După ce aplicaţia va fi pornită, din butonul de nivel al sursei de tensiune se coboară uşor tensiunea (se poate folosi un voltmetru pentru afişare) până când valoarea acesteia coboară sub valoarea de 1.8 V. Se va observa momentul în care achiziţia de date este declanşată. Fereastra panou corespunzătoare acestei aplicaţii este prezentată în Fig. 13, unde se pot observa datele achiziţionate pe ambele canale, după declanşarea achiziţiei: pe canalul 0 - datele de la generator şi pe canalul 1 - semnalul analogic de la sursă, semnal utilizat pentru verificarea condiţiilor de triggerare. Trebuie precizat faptul că la instrumentul AI Config.vi trebuie setat corespunzător parametrul channels – cu ambele canale de achiziţie: 0, 1 (setare valabilă şi la triggerarea analogică).

Page 59: 41717466-Achizitii-LabVIEW

59

Fig. 13. Exemplu de achiziţie de date cu triggerare software

Dacă parametrul mode din clusterul conditional retrieval este

setat pe off se pot vizualiza semnalele achiziţionate fără triggerare. Pentru a înţelege şi a aprofunda achiziţiile de date triggerate

este utilă parcurgerea exemplelor din biblioteca Examples\ daq\ anlogin\ anlogin.llb a LabVIEW. Pentru achiziţii de date triggerate hardware se pot studia şi rula (în funcţie de placa de achiziţie disponibilă) VI-urile Acquire N - multi-ATrig.vi, Acquire N - multi-DTrig.vi, Acquire N Scans - ATrig.vi, Acquire N Scans - DTrig.vi. Aceste VI-uri sunt realizate în jurul instrumentului virtual de achiziţie AI Waveform Scan.vi. Pentru achiziţii de date triggerate software se pot analiza şi rula VI-urile Acquire N Scans SW Trig.vi, Acquire&Proc N Scans SW Trig.vi, realizate cu instrumente de nivel intermediar. Informaţii despre realizarea şi setarea tuturor acestor VI-uri sunt disponibile prin accesarea meniului Windows/ Show VI Info al fiecărui instrument.

4. Temă de laborator

4.1. Ce înţelegeţi prin semnal de trigger? Ce tipuri de triggerare există? Cum definiţi modurile posttrigger şi pretrigger? 4.2. Care tipuri de achiziţie de date pot fi triggerate? Care dintre instrumentele virtuale de achiziţie au facilităţi de triggerare?

Page 60: 41717466-Achizitii-LabVIEW

60

Analizaţi setările instrumentelor AI Start.vi şi AI Read.vi destinate triggerării hardware, respectiv software. 4.3. Implementaţi aplicaţia de achiziţie triggerată analogic din Fig. 9 şi 10 şi realizaţi setările din paragraful 3.1. 4.4. Dezvoltaţi programul LabVIEW de achiziţie continuă cu triggerare numerică descris în paragraful 3.2 (Fig. 11). Conectaţi generatorul de semnal şi generatorul impulsului de trigger TTL la placa AT-MIO-16 conform procedurii prezentate şi observaţi declanşarea numerică a achiziţiei datelor. Modificaţi tipul semnalului furnizat de generator şi încercaţi realizarea unei achiziţii cu pretriggerare. Simulaţi semnalul de trigger numeric cu ajutorul unei aplicaţii de generare cu AO Update Channel.vi şi prin conectarea ieşirii analogice 0 (pinul 20) la pinul STARTTRIG* - 38. 4.5. Implementaţi aplicaţia de achiziţie de date cu triggerare software descrisă în paragraful 3.3 (Fig 12 şi 13). Conectaţi generatorul de semnal şi sursa de tensiune şi realizaţi achiziţia triggerată conform procedurii expuse. Modificaţi parametrii de triggerare (de exemplu alt nivel şi altă pantă pentru tensiune) şi repetaţi experimentul. Modificaţi parametrii offset şi skip count şi verificaţi efectul schimbărilor asupra achiziţiei.

Page 61: 41717466-Achizitii-LabVIEW

61

LUCRAREA NR. 4

Instrumente virtuale pentru generarea datelor. Ieşiri analogice. Generarea fără buffer a datelor

1. Generarea datelor pe ieşirile analogice Pe lângă achiziţia datelor, plăcile de achiziţii pot genera

semnale analogice pe canalele de ieşiri analogice. Ca şi în cazul intrărilor analogice, generarea datelor poate fi mono-canal sau multi-canal, mono-punct sau multi-punct.

Dacă pentru o anumită aplicaţie este necesară furnizarea unui semnal constant (c.c.) sau foarte lent variabil în timp pe una sau mai multe ieşiri analogice ale plăcii, atunci se realizează o generare mono-punct (single-point generation).

Dacă trebuie generat un semnal variabil în timp, atunci este vorba de generare multi-punct (multiple-point sau waveform generation), care poate fi de asemenea mono-canal sau multi-canal.

Spre deosebire de generarea mono-punct, în cazul multi-punct este important nu numai nivelul semnalului generat pe ieşire, ci şi viteza de actualizare a datelor furnizate pe acea ieşire analogică. Placa de achiziţie se comportă ca un generator de semnal. Generarea multi-punct a datelor se poate realiza fie prin utilizarea unor structuri repetitive în care sunt implementate aplicaţii de generare mono-punct, fie prin utilizarea bufferelor. Ca şi în cazul achiziţiilor de date tratate în Lucrările de laborator 1-3, generarea multi-punct bufferată poate fi cu buffer simplu (simple-buffer) sau cu buffer circular (circular-buffer). Generarea multi-punct cu buffer simplu presupune stocarea datelor ce vor fi generate pe ieşire într-un buffer; placa de achiziţie, prin intermediul software-ului de achiziţie sau driverului specializat va trimite la ieşire datele din acest buffer, punct cu punct (eşantion după eşantion) cu o anumită viteză sau rată de generare (de actualizare). Generarea multi-punct cu buffer circular – aşa-numita generare bufferată continuă – se utilizează atunci când datele care trebuie generate sunt de dimensiune foarte mare (nu pot fi stocate într-un singur buffer, şi prin urmare bufferul este completat în mod continuu cu date noi) sau forma de undă se modifică în timpul generării.

Page 62: 41717466-Achizitii-LabVIEW

62

În diagrama din Fig. 1 sunt prezentate schematic tipurile de generare a datelor (analogice).

Fig. 1. Tipuri de generare a datelor

Generarea datelor

Mono-punct (single-point) (generarea unui singur eşantion)

Multi-punct (multiple-point sau waveform generation)

Fără trigger

Cu trigger Hardware:

Software

-Analogic

-Numeric

Mono-canal (single-channel)

Multi-canal (multiple-channel)

Generare ne-bufferată (non-buffered)şi fără sincronizare (non-timed)

Mono-canal (single-channel)

Multi-canal(multiple- channel)

Generarea cu structuri repetitive(control loops) (generare ne-bufferată)

Generare bufferată

Cu buffer simplu(simple-buffer)

Cu buffer circular (circular-buffer) (generare continuă)

-Software-timed

-Hardware-timed (cu ceas intern sau

extern)

Generare hardware-timed

Page 63: 41717466-Achizitii-LabVIEW

63

Generarea datelor se poate efectua sub control software (software-timed), situaţie în care tactul necesar controlului vitezei de generare este furnizat de către ceasul sistemului de calcul (în acest caz controlul poate fi afectat de posibile întreruperi) sau, atunci când este necesară o mai mare precizie, generarea se realizează sub controlul ceasului de pe hardware-ul de achiziţie sau sub controlul unui ceas extern (hardware-timed).

Generarea datelor poate fi declanşată ca şi în cazul achiziţiilor de date printr-un eveniment (semnal) de tip trigger. Există două tipuri de triggerare: hardware (care poate fi analogică sau numerică) şi software. În cazul triggerării hardware, generarea datelor nu este declanşată prin software (de regulă apelul unui instrument de startare) ci este declanşată de un semnal extern, care în cele mai multe situaţii este un semnal numeric. Triggerarea se utilizează în cazul generării bufferate a datelor. 2. Biblioteca de instrumente virtuale pentru ieşiri analogice

Instrumentele utilizate pentru ieşirile analogice sunt grupate în

patru sub-biblioteci ale bibliotecii Analog Output din meniul Data Acquisition/Functions. Cele patru grupuri de instrumente virtuale sunt (Fig. 2): Easy Analog Output VIs, Intermediate Analog Output VIs, Analog Output Utilities VIs şi Advanced Analog Output VIs.

Fig. 2. Biblioteca Analog Output

Easy Analog Output VIs

Intermediate Analog Output VIs

Analog Output Utilities VIs Advanced Analog Output VIs

Page 64: 41717466-Achizitii-LabVIEW

64

Instrumentele din Easy Analog Output VIs sunt VI-uri executabile capabile să realizeze independent operaţiuni de bază pentru ieşiri analogice, fără a mai fi necesare alte VI-uri. Aceste instrumente sunt construite din instrumente de nivel intermediar, care sunt grupate în Intermediate Analog Output VIs, care la rândul lor au la bază instrumente avansate din biblioteca Advanced Analog Output VIs. Un instrument de tip Easy Analog Output VIs furnizează o interfaţă utilizator convenabilă pentru ieşirile analogice uzuale, pentru aplicaţii complexe fiind necesare instrumentele din celelalte grupuri.

Instrumentele de nivel intermediar din Intermediate Analog Output VIs sunt construite pe baza instrumentelor avansate şi oferă facilităţi apropiate de acestea. Instrumentele utilitare din Analog Output Utilities VIs sunt tot de nivel intermediar şi oferă soluţii pentru situaţiile obişnuite în care se furnizează date pe ieşirile analogice. Instrumentele avansate din Advanced Analog Output VIs constituie interfaţa dintre LabVIEW şi driverele NI-DAQ, fiind la baza celorlalte instrumente de ieşiri analogice. Atunci când pentru realizarea unei aplicaţii pentru furnizarea de date pe ieşirile analogice se folosesc mai multe VI-uri (de exemplu, cele intermediare), trebuie realizată o secvenţiere a acestora (ca şi în cazul achiziţiei de date analogice) – Fig. 3. Ca şi în cazul achiziţiei de date, sunt esenţiale conexiunile de tip task ID şi error.

Fig. 3. Secvenţierea VI-urilor pentru generarea de date analogice

Configurare placă (AO Config.vi)

Scriere date analogice(AO Write.vi)

Lansare generare date(AO Start.vi)

Aşteptare sfârşit generare date(AO Wait.vi)

Ştergere resurse (AO Clear.vi)

Page 65: 41717466-Achizitii-LabVIEW

65

În continuare vor fi descrise câteva VI-uri pentru furnizarea datelor la ieşirile analogice, şi anume instrumentele de nivel intermediar din Intermediate Analog Output VIs şi instrumentele din Analog Output Utilities VIs.

În Fig. 4 – 8 sunt prezentate VI-urile de nivel intermediar. Semnificaţia terminalelor poate fi analizată prin apelarea meniului Online help al fiecărui VI. O parte din aceste terminale au aceeaşi semnificaţie ca şi în cazul instrumentelor virtuale de achiziţie analogică (a se vedea Tabelul 1 din Lucrarea de laborator nr. 1). Rolul frecvenţei de achiziţie (de eşantionare) scan rate de la intrările analogice este jucat aici de update rate, care este frecvenţa de generare (de ieşire) sau rata de actualizare a datelor analogice.

AO Config.vi realizează configurarea canalelor de ieşire şi a limitelor ieşirii şi alocă buffer-ul necesar operaţiei de ieşire analogică. AO Write.vi scrie datele în memoria tampon. AO Start.vi setează rata de generare a datelor şi lansează operaţia de generare a datelor analogice. AO Wait.vi aşteaptă până când generarea datelor se termină apoi apelează AO Clear.vi, care şterge task-ul de ieşire analogică asociat numărului task ID in.

Fig. 4. Instrumentul AO Config.vi

Fig. 5. Instrumentul AO Write.vi

Fig. 6. Instrumentul AO Start.vi

Page 66: 41717466-Achizitii-LabVIEW

66

Fig. 7. Instrumentul AO Wait.vi

Fig. 8. Instrumentul AO Clear.vi

În Fig. 9, 10 şi 11 sunt prezentate instrumentele din Analog

Output Utilities VIs. Instrumentul AO Write One Update.vi scrie o singură valoare (tensiune) la fiecare din canalele analogice de ieşire specificate. AO Waveform Gen.vi generează un semnal de ieşire (o formă de undă = un set de date) la canalul de ieşire specificat, cu rata de actualizare specificată. Acest VI foloseşte fie un singur buffer (suficient de mare pentru toate datele) – tehnica simple-buffered, fie un buffer circular – tehnica circular-buffered (dimensiunea datelor este mai mare decât dimensiunea buffer-ului şi prin urmare datele se scriu în mod ciclic). Instrumentul AO Continuous Gen.vi generează continuu un set de date cu frecvenţa specificată, la canalul de ieşire specificat, folosind un buffer circular.

Fig. 9. Instrumentul AO Write One Update.vi

Fig. 10. Instrumentul AO Waveform Gen.vi

Page 67: 41717466-Achizitii-LabVIEW

67

Fig. 11. Instrumentul AO Continuous Gen.vi

3. Aplicaţii de generare ne-bufferată a datelor 3.1. Generarea de date mono-punct Cea mai simplă operaţiune de ieşire analogică este generarea

unui singur punct (semnal de nivel constant) pe un singur canal (single-point single-channel) sau pe mai multe canale (single-point multiple-channel).

Pentru implementarea rapidă a unor aplicaţii de generare mono-punct se pot utiliza instrumentele virtuale din sub-biblioteca Easy Analog Output VIs. VI-ul utilizat se apelează atunci când se doreşte schimbarea valorii furnizate pe canalul (canalele) de ieşire analogică. Rezultă că modificarea valorii de pe ieşire se poate realiza cu viteza impusă de software, mai precis în funcţie de rapiditatea cu care LabVIEW apelează VI-ul respectiv (software timing). Din această cauză, această tehnică se poate folosi atunci când nu este necesară generarea rapidă a datelor sau o rată precisă de actualizare.

Cea mai simplă aplicaţie de generare mono-punct mono-canal presupune utilizarea instrumentului virtual AO Update Channel.vi din sub-biblioteca Easy Analog Output VIs. Acest VI are doar trei terminale de intrare: device – numărul plăcii, channel – numărul canalului şi voltage – valoarea tensiunii care trebuie generată pe canalul specificat.

În Fig. 12 sunt prezentate fereastra panou şi fereastra diagramă ale unei aplicaţii realizată cu AO Update Channel.vi, care permite scrierea unei tensiuni de 3 volţi pe canalul 0. Pentru vizualizarea acestei tensiuni la ieşirea plăcii AT-MIO-16 (configurată conform celor precizate în Lucrarea de laborator nr. 1), se utilizează un voltmetru conectat la pinii 20, 23 ai conectorului I/O al plăcii. Pentru modificarea tensiunii la o altă valoare, se schimbă în mod corespunzător controlul voltage şi se rulează din nou VI-ul.

Page 68: 41717466-Achizitii-LabVIEW

68

Fig. 12. Generarea mono-punct mono-canal cu AO Update Channel.vi

Pentru o aplicaţie de generare mono-punct dar multi-canal se poate utiliza instrumentul virtual AO Update Channels.vi, din biblioteca Easy, a cărui structură este asemănătoare cu cea a instrumentului AO Update Channel.vi (trebuie specificată o listă de canale iar parametrul voltages este un vector care conţine valorile ce se doresc generate pe canalele de ieşire).

Pentru aplicaţiile în care este necesar controlul asupra setării limitelor pe fiecare canal de ieşire, trebuie utilizate VI-uri de nivel intermediar cum ar fi, de exemplu, AO Write One Update.vi (Fig. 9) aflat în biblioteca Analog Output Utilities VIs.

3.2. Generarea de date multi-punct cu structuri repetitive Prin utilizarea unor instrumente virtuale de generare mono-

punct în interiorul unor structuri repetitive (control loops) de tip While se pot obţine VI-uri pentru generare de date multi-punct. Astfel de structuri sunt lente şi pot fi utilizate în aplicaţii de conducere, atunci când este necesar calculul sau procesarea datelor de ieşire punct cu punct (de exemplu, se achiziţionează un eşantion de la un traductor, se calculează eroarea în funcţie de referinţă, se calculează comanda în funcţie de eroare şi se generează pe ieşire spre procesul condus valoarea acestei comenzi).

Un exemplu de astfel de aplicaţie este prezentat în Fig. 13 şi Fig. 14, în care este utilizat VI-ul de nivel intermediar AO Write One Update.vi într-o structură de tip While Loop, controlul vitezei de execuţie fiind realizat prin software (software timed). Trebuie precizat

Page 69: 41717466-Achizitii-LabVIEW

69

că nu este indicată folosirea în bucle a instrumentelor Easy, care sunt ineficiente din cauza configurării lor la fiecare execuţie (spre deosebire de acestea, instrumentul de nivel intermediar AO Write One Update.vi se configurează doar pentru iteraţia 0 a buclei While).

VI-ul din interiorul buclei While este executat în mod repetat, până când starea erorii sau controlul boolean de oprire a buclei sunt adevărate. Datele care sunt generate pe canalul 0 sunt furnizate dintr-un vector (array), iar ritmul de generare este controlat prin intermediul ratei de actualizare. Controlul pentru rata de generare şi controlul pentru voltage sunt plasate în interiorul buclei While pentru a avea posibilitatea de modificare a acestora în timpul rulării. Deoarece AO Write One Update.vi acceptă pe intrarea voltage date sub formă de vector (este prevăzut pentru generarea de date multi-canal), în cazul generării pe un singur canal trebuie utilizat un vector având doar primul element activat (aşa cum se observă din Fig. 13). Pentru vizualizarea datelor generate se poate folosi un voltmetru conectat pe pinii 20, 23 ai conectorului I/O al plăcii AT-MIO-16.

În cazul aplicaţiilor de conducere, datele generate provin de la ieşirea unui regulator implementat sub forma unui VI.

Fig. 13. Generarea de date multi-punct cu AO Write One Update.vi

Page 70: 41717466-Achizitii-LabVIEW

70

Fig. 14. Diagrama aplicaţiei de generare cu AO Write One Update.vi

în buclă While Pentru realizarea unei generări de date multi-punct

performante în ceea ce priveşte viteza şi precizia ratei de actualizare, trebuie folosite aplicaţii bufferate hardware-timed (sub controlul ceasului de pe placa de achiziţie sau sub controlul unui ceas extern).

4. Temă de laborator

4.1. Identificaţi instrumentele virtuale pentru generare de date din biblioteca Analog Output din meniul Data Acquisition/ Functions. Ce înţelegeţi prin conexiuni task ID şi error? Parcurgeţi cu atenţie VI-urile din bibliotecă şi analizaţi semnificaţia acestora şi a terminalelor.

4.2. Implementaţi şi rulaţi aplicaţia de generare mono-punct mono-canal din Fig. 12, pentru diverse valori ale tensiunii. Vizualizaţi şi verificaţi cu ajutorul voltmetrului aceste valori.

4.3. Construiţi şi rulaţi o aplicaţie de generare mono-punct multi-canal (2 canale) cu instrumentul AO Update Channels.vi. Verificaţi datele generate cu ajutorul a două voltmetre conectate corespunzător (la pinii 20, 23, respectiv 21, 23 ai conectorului I/O al plăcii AT-MIO-16).

4.4. Implementaţi şi rulaţi programul din Fig. 13, 14 – generare multi-punct cu buclă While. Verificaţi datele generate cu ajutorul unui voltmetru.

Page 71: 41717466-Achizitii-LabVIEW

71

LUCRAREA NR. 5

Ieşiri analogice. Generarea bufferată a datelor

Aşa cum s-a precizat în lucrarea de laborator precedentă (Lucrarea nr. 4), generarea multi-punct a datelor, se poate realiza fie prin utilizarea unor structuri repetitive în care sunt implementate aplicaţii de generare mono-punct, fie prin utilizarea bufferelor. Generarea multi-punct bufferată poate fi cu buffer simplu (simple-buffer) sau cu buffer circular (circular-buffer). Generarea multi-punct cu buffer simplu presupune stocarea datelor ce vor fi generate pe ieşire într-un buffer, iar placa de achiziţie, prin intermediul software-ului de achiziţie sau driverului specializat, va furniza datele din buffer la ieşire, punct cu punct (eşantion după eşantion) cu o anumită viteză sau rată de generare (de actualizare). Generarea multi-punct cu buffer circular – aşa-numita generare bufferată continuă – se utilizează atunci când datele care trebuie generate sunt de dimensiune foarte mare (nu pot fi stocate într-un singur buffer, şi prin urmare bufferul este completat în mod continuu cu date noi) sau forma de undă trebuie modificată în timpul generării.

Generarea de date multi-punct (de forme de undă) bufferată face ca placa de achiziţie să joace rolul unui generator de semnal.

1. Generarea de date multi-punct cu buffer simplu Generarea multi-punct cu buffer simplu presupune stocarea

datelor ce vor fi generate pe ieşire într-un buffer de lungime specificată. Placa de achiziţie, prin intermediul LabVIEW, va furniza pe canalul de ieşire specificat (sau pe canalele specificate) datele din buffer, punct cu punct, în ritmul dat de rata de actualizare (frecvenţa de generare) specificată.

Pentru implementarea unor aplicaţii de generare de forme de undă cu buffer simplu se pot folosi diverse VI-uri din bibliotecile Easy Analog Output VIs, Intermediate Analog Output VIs, Analog Output Utilities VIs sau Advanced Analog Output VIs.

Dacă aplicaţia nu este pretenţioasă, aceasta se construieşte cel mai rapid cu instrumente din biblioteca Easy, ca de exemplu

Page 72: 41717466-Achizitii-LabVIEW

72

instrumentul AO Generate Waveforms.vi, care permite scrierea datelor furnizate pe canalele de ieşire specificate, în ritmul dat de frecvenţa de generare (update rate). Datele sunt stocate într-un tablou (matrice), a cărui dimensiune depinde de numărul de canale şi de lungimea datelor. Nivelul unui semnal furnizat pe unul din canalele de ieşire analogică rămâne nemodificat (egal cu ultima valoare generată), până când următoarea valoare este furnizată pe acea ieşire. Utilizând acest VI a fost dezvoltată aplicaţia prezentată în Fig. 1, 2. Se observă că aplicaţia se referă la o generare multi-punct multi-canal.

Pe canalele de ieşire analogică 0 şi 1 se generează, cu o rată de actualizare de 1 Hz, două semnale foarte simple (pe prima coloană a matricei waveforms semnalul generat pe ieşirea 0 şi pe cea de-a doua semnalul generat pe ieşirea 1; liniile matricei furnizează valorile care sunt actualizate la un anumit moment pe ambele canale). Evoluţia celor două semnale generate se poate observa cu două voltmetre conectate pe pinii 20, 23, respectiv 21, 23 ai conectorului I/O al plăcii AT-MIO-16.

Exemplul anterior este unul foarte simplu, ilustrând modul de lucru pentru o astfel de generare de date. Semnalul poate fi însă furnizat de la diverse generatoare de semnal (virtuale) sau de alte aplicaţii (poate fi, de exemplu, un semnal achiziţionat în prealabil, prelucrat şi apoi generat pe ieşire).

Fig. 1. Generarea multi-punct multi-canal cu buffer simplu – AO

Generate Waveforms.vi

Page 73: 41717466-Achizitii-LabVIEW

73

Fig. 2. Fereastra diagramă a aplicaţiei cu AO Generate Waveforms.vi

Atunci când este necesar controlul asupra mai multor

parametri, se pot folosi instrumente din Analog Output Utilities VIs, cum ar fi de exemplu AO Waveform Gen.vi, care dispune de terminale suplimentare faţă de instrumentul AO Generate Waveforms.vi (a se vedea Fig. 10 din lucrarea de laborator nr. 4). De exemplu, prin setarea corespunzătoare a parametrului generation count există opţiunea de a genera datele din buffer de mai multe ori. Pentru optimizarea generării de date acest VI se poate plasa într-o buclă While şi se leagă terminalul de iteraţie al buclei la terminalul de iteraţie al VI-ului, astfel încât configurarea generării de date să se realizeze o singură dată.

Pentru dezvoltarea unor aplicaţii complexe este indicată utilizarea instrumentelor de nivel intermediar sau a celor avansate. Conectarea VI-urilor intermediare trebuie să se realizeze prin legăturile task ID şi error, respectând secvenţierea din Fig. 3 – lucrarea de laborator precedentă. O aplicaţie principială pentru generarea bufferată a unui set de date (multi-punct), cu buffer simplu, pe o ieşire analogică este prezentată în Fig. 3. Au fost utilizate instrumentele de nivel intermediar din biblioteca Intermediate Analog Output VIs. În fereastra diagramă a aplicaţiei se pot observa conexiunile taskID in / taskID out şi error in / error out ca şi în cazul achiziţiei analogice. Instrumentul General Error Handler.vi furnizează o descriere a erorilor apărute în procesul de generare a datelor.

Page 74: 41717466-Achizitii-LabVIEW

74

Fig. 3. Generarea bufferată cu VI-uri de nivel intermediar

Prin utilizarea VI-urilor de nivel intermediar, se pot seta o serie de parametri suplimentari, cum ar fi alegerea ceasului (de pe placă sau extern), returnarea ratei de generare reale etc. Rolul VI-urilor în această aplicaţie a fost schiţat deja în Fig. 3 – lucrarea de laborator precedentă: AO Config.vi setează placa şi canalele specificate de utilizator pentru generare, AO Write.vi plasează datele în bufferul de lungime specificată, AO Start.vi declanşează generarea datelor în ritmul dat de frecvenţa de actualizare (update rate), AO Wait.vi verifică dacă generarea este finalizată după care permite instrumentului AO Clear.vi să şteargă setările canalelor de ieşire.

În Fig. 4 este prezentată fereastra panou a unei aplicaţii de generare simplu-bufferată cu VI-uri intermediare, dezvoltată pe baza diagramei din Fig. 3. Datele generate pe două canale analogice de ieşire sunt stocate într-o matrice (prima coloană – semnalul ce va fi generat pe primul canal, iar a doua coloană – semnalul generat pe cel de-al doilea canal). Datele ce vor fi generate de aplicaţie sunt vizualizate cu ajutorul unui Graph. La terminarea generării datelor, AO Clear.vi va şterge task-ul curent şi va trece ambele canale analogice pe 0 V. Prin conectarea a două voltmetre (sau osciloscoape) pe pinii 20, 23 respectiv 21, 23 ai conectorului I/O al plăcii AT-MIO-16 se pot vizualiza şi verifica datele furnizate pe cele două canale de ieşiri analogice.

Page 75: 41717466-Achizitii-LabVIEW

75

Fig. 4. Aplicaţie de generare simplu-bufferată cu VI-uri intermediare Prin modificarea mărimii bufferului şi a vitezei de actualizare

(1 Hz în Fig. 4) pot fi generate date de dimensiuni şi cu rate de actualizare diferite.

În aplicaţiile de generare de forme de undă trebuie calculată

cu atenţie frecvenţa semnalului generat pe canalele de ieşiri analogice, pentru ca această frecvenţă să corespundă într-adevăr cu frecvenţa dorită pentru semnalul generat. Calculul frecvenţei semnalului depinde esenţial de rata de generare, de numărul de eşantioane din buffer şi de numărul de perioade (număr de cicluri) ale semnalului stocat în buffer. De exemplu, dacă în buffer sunt stocate 1000 de puncte (eşantioane) care reprezintă valorile unui sinus pe o perioadă ( π2 ), iar rata de generare a acestor puncte este de 10000 de eşantioane pe secundă (10 kHz), atunci semnalul generat va avea frecvenţa de 10 Hz. Formula generală de calcul este:

( ) esantioanegenerareperioadesemnal nfnf /×= ,

unde semnalf este frecvenţa semnalului, perioaden - numărul de cicluri (de

Page 76: 41717466-Achizitii-LabVIEW

76

perioade) ale semnalului stocate în buffer, generaref - frecvenţa de

generare (update rate), esantioanen - numărul de puncte stocate în buffer. Dacă dorim să modificăm frecvenţa semnalului generat, trebuie fie să mărim update rate fie să mărim numărul de perioade ale semnalului din buffer. În exemplul de mai sus, dacă dorim să obţinem o frecvenţă de 20 Hz, fie mărim frecvenţa de generare la 20 kHz, fie mărim numărul de cicluri ale semnalului la 2 (păstrând numărul de puncte – 1000, ceea ce duce la scăderea acurateţei semnalului sinusoidal furnizat) – a se vedea Fig. 5.

Fig. 5. Determinarea frecvenţei semnalului generat Din formula de mai sus rezultă şi limitările în ceea ce priveşte

generarea de semnale, în funcţie de hardware-ul de achiziţie utilizat. La placa AT-MIO-16 de exemplu, frecvenţa de generare maximă este de 250000 de eşantioane/sec. (diferită de frecvenţa de eşantionare maximă de 100000 de eşantioane/sec.). Dacă presupunem un buffer care stochează 1000 de puncte ale unui ciclu sinusoidal, rezultă că frecvenţa maximă a semnalului generat pe o ieşire analogică este de 100 Hz. Micşorarea numărului de puncte/perioadă la 10 (ceea ce este destul de puţin din punct de vedere al acurateţei) conduce la o frecvenţă de generare maximă de 10kHz. În continuare, pe baza diagramei din Fig. 3 va fi construit un program de generare a unor semnale sinusoidale cu tehnica simple-buffer. Fereastra panou a aplicaţiei este prezentată în Fig. 6, iar diagrama în Fig. 7. Sunt utilizate instrumente de nivel intermediar pentru generarea unui semnal de tip sinus pe canalul de ieşire

Buffer: 1000 pct. Nr. perioade: 1 Update rate: 10 kHz ⇒ Frecvenţă semnal: 10 Hz(nr. puncte/ciclu = 1000)

Modificare update rate: 20 kHz⇒ Frecvenţă semnal: 20 Hz (nr. de puncte/ciclu = 1000)

Modificare nr. perioade: 2 ⇒ Frecvenţă semnal: 20 Hz(nr. de puncte/ciclu = 500)

Page 77: 41717466-Achizitii-LabVIEW

77

analogică 0 şi a unui semnal de tip cosinus pe canalul 1. Generatoarele care sintetizează semnalele sunt realizate cu ajutorul unor bucle For, fiind posibil controlul numărului de puncte pe perioadă (dacă se doreşte generarea a mai mult - sau mai puţin - de un ciclu, trebuie modificate corespunzător constantele π2 din bucle). În aplicaţia prezentată, dacă numărul de puncte din buffer nu corespunde cu numărul de puncte/ perioadă, de exemplu buffer mai mic, atunci va fi generat un semnal sinusoidal trunchiat.

Din setările realizate în Fig. 6, pe baza formulei de calcul anterioare, se deduce că frecvenţa semnalului generat este de (1 ciclu x 10 eşantioane/sec)/1000 puncte = 0.01 Hz.

Cele două generatoare implementate cu bucla For furnizează la ieşiri vectori de date; aceştia sunt prelucraţi prin intermediul unor funcţii Build Array si Transpose 2D Array pentru a furniza o matrice de date, care se aplică la intrarea voltage data a instrumentului AO Write.vi. Cele două indicatoare grafice sunt utilizate pentru reprezentarea funcţiilor sinus şi cosinus obţinute cu buclele For, care nu constituie însă semnalul generat pe ieşirile analogice. Semnalul sinusoidal generat pe canalul 0 poate fi vizualizat, de exemplu, prin folosirea unui voltmetru (cu 0 la mijloc) conectat pe pinii 20, 23 ai conectorului I/O al plăcii AT-MIO-16. Pentru ambele canale trebuie utilizate două voltmetre. Este indicată totuşi folosirea unui osciloscop, indispensabil dacă frecvenţa semnalului este mare.

Fig. 6. Generarea unor semnale sinusoidale prin bufferare simplă

Page 78: 41717466-Achizitii-LabVIEW

78

Fig. 7. Diagrama aplicaţiei de generare a unor semnale sinusoidale

Fig. 8. Achiziţia cu Cont Acq&Chart.vi a semnalului generat -canal 0

Page 79: 41717466-Achizitii-LabVIEW

79

O posibilitate de vizualizare a semnalului generat pe ieşirea 0 este de a utiliza aceeaşi placă AT-MIO-16, la care ieşirea analogică 0 se conectează la canalul de intrare analogică 0 (prevăzut la intrare cu circuitul de condiţionare 5B-41), şi rularea unui VI pentru achiziţia de date, de exemplu Cont Acq&Chart (buffered).vi (a se vedea Lucrarea de laborator nr. 2). Rezultatele sunt afişate în Fig. 8. Aceste rezultate au fost obţinute pentru o rată de generare de 100 eşantioane/sec. (a nu se confunda cu scan rate) ceea ce înseamnă că semnalul vizualizat are o frecvenţă de 0.1 Hz. Pentru implementarea rapidă a unor generatoare de semnal se pot utiliza funcţiile speciale din biblioteca Functions / Analysis / Signal Generation. În Fig. 9 este prezentată diagrama pentru cazul în care generatorul sinusoidal este Sine Pattern.vi, iar acesta generează un sinus pe două perioade (pot fi setate amplitudinea, faza etc. – a se vedea Online help). Semnalul generat pe ieşire este redat în Fig. 10, tot prin utilizarea Cont Acq&Chart.vi. Frecvenţa semnalului este acum de 0.2 Hz. Pentru o mai mare flexibilitate este indicată folosirea generatorului Sine Wave.vi din aceeaşi bibliotecă sau utilizarea (după încapsulare) a unor generatoare construite de utilizator, cum sunt, de exemplu, cele din lucrarea Ghid de programare în LabVIEW. Aplicaţii pentru prelucrarea semnalelor (a se vedea referinţele bibliografice).

Fig. 9. Utilizarea Sine Pattern.vi pentru generarea semnalului

Page 80: 41717466-Achizitii-LabVIEW

80

Fig. 10. Achiziţia şi vizualizarea semnalului generat

2. Generarea de date multi-punct cu buffer circular Generarea multi-punct cu buffer circular se utilizează atunci

când datele care trebuie generate sunt de dimensiune foarte mare şi nu pot fi stocate într-un singur buffer sau atunci când aplicaţia respectivă necesită modificarea formei de undă în timpul generării.

Dintre VI-urile disponibile, pentru generarea de date prin tehnica circular-buffered se poate utiliza, de exemplu, instrumentul AO Continuous Gen.vi (a se vedea Fig. 11 din lucrarea de laborator precedentă) din biblioteca Analog Output Utilities VIs. Acest VI este eficient prin faptul că realizează configurarea şi alocarea bufferului atunci când terminalul iteration este 0 şi realizează dezafectarea bufferului atunci când terminalul boolean clear generation este „true”. O aplicaţie principială care utilizează instrumentul AO Continuous Gen.vi este prezentată în Fig. 11.

Page 81: 41717466-Achizitii-LabVIEW

81

Pe baza acestui nucleu a fost dezvoltat instrumentul Continuous Generation.vi plasat în biblioteca examples\daq\anlogout\ anlogout.llb a LabVIEW (Fig. 12, Fig. 13). Continuous Generation.vi realizează o generare hardware timed circular-bufferată.

Fig. 11. Generarea continuă de date cu AI Continuous Gen.vi

Fig. 12. Fereastra Panel a aplicaţiei Continuous Generation.vi

Page 82: 41717466-Achizitii-LabVIEW

82

Fig. 13. Fereastra Diagram a aplicaţiei Continuous Generation.vi

Datele ce trebuie generate completează în întregime bufferul

(de lungime precizată) la prima iteraţie a buclei While. La următoarele iteraţii, datele noi sunt (supra)scrise într-o jumătate a bufferului, în timp ce cealaltă jumătate continuă să transmită date spre ieşirea (ieşirile) analogică (e). Prin urmare, acest VI scrie date noi în buffer pe măsură ce generarea datelor este în curs de desfăşurare.

În acest exemplu, datele generate provin de la un generator de semnal dreptunghiular My Data Generator subVI. Dacă se doreşte generarea unui alt semnal pe ieşirea analogică, acest subVI poate fi modificat. Datele trebuie furnizate la intrarea instrumentului AO Continuous Gen.vi sub forma unui tablou. Informaţii suplimentare despre această aplicaţie se pot obţine din meniul Windows/ Show VI Info. Datele generate pot fi vizualizate cu Graph-ul din VI şi prin conectarea unui voltmetru sau osciloscop pe pinii 20, 23 ai conectorului I/O al plăcii AT-MIO-16 (pentru un singur canal de ieşire analogică – 0). Poate fi de asemenea utilizat un VI de achiziţie ca în exemplele de generare simplu-bufferată anterioare. Pentru aplicaţiile pretenţioase, în care se urmăreşte realizarea unui control riguros asupra parametrilor generării de date (cum ar fi setarea ceasului intern/extern, monitorizarea ratei de actualizare reale etc.) trebuie utilizate instrumentele de nivel intermediar conectate într-o structură asemănătoare cu cea din Fig. 3. Spre deosebire de

Page 83: 41717466-Achizitii-LabVIEW

83

conexiunea din Fig. 3, aşa cum se observă din Fig. 14, terminalul number of buffer iteration (care are valoarea implicită 1) al instrumentului AO Start.vi se setează la 0 – generare continuă.

Instrumentul AO Write.vi este folosit de două ori: prima dată după AO Config.vi pentru plasarea datelor ce vor fi generate în mod repetat în buffer, iar a doua oară în bucla While. Plasarea instrumentului AO Write.vi în buclă este necesară doar dacă se doreşte verificarea erorilor (cu conectarea corespunzătoare la condiţia de oprire a buclei) sau dacă se doreşte scrierea de noi date (adică modificarea datelor iniţiale care sunt generate repetat) în bufferul circular. Instrumentul AO Wait.vi nu se mai utilizează, deoarece rolul său este de a verifica dacă generarea de date a fost încheiată (la bufferarea simplă), ori generarea continuă a datelor nu se termină niciodată – decât la oprirea rulării buclei sau la apariţia unei erori. Dacă se urmăreşte doar generarea repetată a aceloraşi date din buffer, atunci nu mai este necesară conectarea unui alt set de date la instrumentul AO Write.vi din bucla While, şi rolul său rămâne doar de verificare a erorilor. După oprirea buclei While instrumentul AO Clear.vi poate trece la ştergerea resurselor folosite.

În Fig. 15 este prezentată fereastra panou pentru diagrama din Fig. 14, pentru situaţia în care se doreşte generarea pe canalele 0 şi 1 a tensiunilor din matricele voltage data (primele date generate) şi new data (datele generate în mod repetat după ce au fost generate iniţial cele din voltage data).

Fig. 14. Generarea continuă de date cu instrumente intermediare

Page 84: 41717466-Achizitii-LabVIEW

84

Fig. 15. Generarea continuă a unor tensiuni pe canalele 0, 1

Tensiunile generate pot fi urmărite prin plasarea a două

voltmetre la pinii 20, 23 respectiv 21, 23 ai conectorului I/O al plăcii AT-MIO-16. Reamintim că datele de pe coloanele matricelor reprezintă tensiunile ce vor fi generate pe câte un canal, iar liniile reprezintă tensiunile ce sunt scanate la fiecare interval de scanare. În situaţia în care se doreşte generarea repetată (continuă) numai a datelor din voltage data, atunci matricea new data trebuie deconectată de la instrumentul AO Write.vi din buclă. Dacă datele trebuie schimbate în timpul generării lor, este indicată plasarea instrumentului (controlului) care furnizează aceste date în buclă, deoarece acest lucru permite modificarea “on-the-fly”, lucru util îndeosebi la generarea continuă a semnalelor (formelor de undă).

În Fig. 16 şi Fig. 17, pe baza structurii cu instrumente intermediare prezentată în Fig. 14, este realizat un generator continuu de semnal sinusoidal.

Pentru sinteza valorilor unui ciclu sinusoidal a fost utilizat Sine Pattern.vi, plasat în interiorul buclei While. Matricea de date iniţiale plasată, la intrarea instrumentului AO Write.vi din afara buclei, are rolul iniţierii generării datelor.

Page 85: 41717466-Achizitii-LabVIEW

85

Fig. 16. Aplicaţie de generare continuă a unui semnal sinusoidal

Fig. 17. Exemplu de generare continuă a unui semnal sinusoidal

Page 86: 41717466-Achizitii-LabVIEW

86

Graph-ul din buclă serveşte la vizualizarea semnalului sinusoidal calculat pe o perioadă, semnal ce va fi generat continuu pe ieşirea analogică 0 (nu reprezintă o afişare în timp real a acestui semnal). Acest semnal poate fi vizualizat în timp real cu ajutorul osciloscopului (pinii 20, 23) sau prin intermediul unui VI de achiziţie (a se vedea Lucrarea de laborator nr. 2) dotat cu indicator grafic corespunzător.

În exemplul din Fig. 17, frecvenţa semnalului generat va fi de 10 Hz (rezultă din update rate şi din numărul de puncte/perioadă). Acest semnal poate fi achiziţionat şi vizualizat, de exemplu, cu Cont Acq&Graph.vi (Fig. 18). În timpul generării continue a semnalului, amplitudinea şi offsetul acestuia pot fi modificate din controalele corespunzătoare plasate în fereastra panou din Fig. 17 (care au fost plasate şi în bucla While - Fig.16).

Fig. 18. Achiziţia şi vizualizarea semnalului generat

Page 87: 41717466-Achizitii-LabVIEW

87

Pentru implementarea unui generator de funcţii se poate folosi metoda generării de date cu buffer circular, prin intermediul softului corespunzător şi a plăcii de achiziţie. Biblioteca Examples\ daq\ anlogout\ anlogout.llb conţine generatorul Function Generator.vi care este construit în jurul unei structuri cu VI-uri intermediare de tipul celei din Fig. 16. Acest generator permite schimbarea parametrilor (amplitudine, offset etc.) şi tipului semnalului (sinusoidal, dreptunghiular etc.) furnizat pe ieşirea analogică în timpul generării de date („on-the-fly”). Pentru aprofundarea problemelor legate de generarea datelor pe ieşirile analogice se pot analiza şi rula alte diferite exemple din directorul Examples\Daq.

La generarea continuă cu buffer circular poate apare o eroare de tipul underFlowError (cod –10843), ceea ce înseamnă că programul nu poate scrie suficient de rapid date în bufferul circular astfel încât datele să fie generate cu viteza cerută. Pentru rezolvarea problemei trebuie micşorată frecvenţa de generare sau trebuie mărit bufferul.

Observaţie: Ca şi în cazul achiziţiilor de date bufferate, generarea poate fi declanşată la apariţia unor semnale de trigger (hardware sau software).

Trebuie reamintit faptul că rularea programelor de achiziţie şi/sau generare de date analogice se poate face doar în prezenţa unei plăci de achiziţie, cum ar fi de exemplu placa AT-MIO-16H, care trebuie configurată corespunzător (Anexa 1).

3. Temă de laborator

3.1. Dezvoltaţi aplicaţia multi-punct simplu-bufferată din Fig. 1, 2. Vizualizaţi semnalele generate cu ajutorul unui Graph sau Chart pentru ambele canale şi verificaţi valorile respective cu două voltmetre plasate pe cele două ieşiri ale plăcii AT-MIO-16. Care este diferenţa dintre scan rate şi update rate?

3.2. Implementaţi aceeaşi aplicaţie de la punctul 3.1, dar folosind un instrument AO Waveform Gen.vi, cu repetarea de 3 ori a generării de date.

3.3. Dezvoltaţi o aplicaţie multi-punct simplu bufferată cu instrumente intermediare (Fig. 3, 4). Vizualizaţi cu indicatoare grafice datele generate şi verificaţi cu voltmetrul aceste date.

Page 88: 41717466-Achizitii-LabVIEW

88

3.4. Realizaţi o generare cu buffer simplu a semnalelor sinusoidale cu aplicaţia din Fig. 6 – Fig. 10. Modificaţi frecvenţa semnalelor generate prin modificarea numărului de perioade, a dimensiunii bufferului sau a frecvenţei de generare update rate. Vizualizaţi semnalul generat pe ieşirea 0 cu un voltmetru, un osciloscop sau cu ajutorul aceleiaşi plăci şi cu un instrument virtual de achiziţie. Încercaţi utilizarea pentru generarea semnalelor sinus şi cosinus a instrumentului Sine Wave.vi.

3.5. Rulaţi programul Continuous Generation.vi descris în Fig. 12, 13 şi dezvoltaţi un VI similar pe baza diagramei din Fig. 11 pentru generare cu buffer circular. Vizualizaţi semnalul generat cu un voltmetru, un osciloscop sau cu un instrument virtual de achiziţie (cu aceeaşi placă sau cu o placă AT-MIO-16 plasată în alt calculator).

3.6. Dezvoltaţi pe baza diagramei din Fig. 14 şi a ferestrei panou din Fig. 15 o aplicaţie de generare continuă cu buffer circular. Modificaţi datele generate şi frecvenţa de generare şi citiţi tensiunile furnizate cu două voltmetre conectate la ieşirile analogice 0 şi 1 ale plăcii AT-MIO-16.

3.7. Generaţi în mod continuu un semnal sinusoidal pe ieşirea analogică 0 a plăcii, semnal care va fi vizualizat cu un osciloscop sau cu un VI de achiziţie.

3.8. Generaţi în mod continuu un semnal triunghiular (pentru sinteza semnalului se poate folosi generatorul din biblioteca Analysis sau se construieşte un generator propriu), care va fi afişat cu un osciloscop sau cu un VI de achiziţie.

3.9. Rulaţi generatorul de funcţii Function Generator.vi pentru diverse tipuri de semnale, parametri şi frecvenţe de generare. Vizualizaţi semnalele generate cu VI-uri de achiziţie.

Page 89: 41717466-Achizitii-LabVIEW

89

LUCRAREA NR. 6

Operaţii cu fişiere. Stocarea (data logging) şi citirea datelor

1. Tehnici de stocare şi înregistrare a datelor – data logging & recording

1.1. Definiţii şi clasificări

Stocarea şi înregistrarea datelor reprezintă aplicaţii de măsurare denumite în terminologia engleză data logging and recording sau pe scurt data logging; un sistem de achiziţie care realizează aceste operaţii se numeşte data logger. Prin data logging se înţelege măsurarea şi înregistrarea unor mărimi fizice pe un anumit interval de timp, precum şi realizarea unor operaţii de analiză şi vizualizare a datelor, însoţite de generarea de rapoarte şi distribuirea datelor (data sharing). Operaţiile de data logging acoperă un spectru larg de aplicaţii, de la energetică la industria chimică şi alimentară, de la construcţii la industria automobilelor etc. Toate aceste aplicaţii au însă caracteristici comune în ceea ce priveşte arhitectura sistemelor de tip data logger.

Sistemele data logger au evoluat de la înregistrările şi graficele trasate manual la înregistratoarele automate cu hârtie şi până la sistemele moderne de achiziţie şi stocare a datelor bazate pe tehnica numerică de calcul. Sistemele data logger moderne pot fi clasificate în două mari categorii: dispozitive speciale de tip stand alone – care sunt instrumente independente de măsurare, conversie numerică şi stocare a datelor, respectiv sisteme data logger bazate pe calculator (PC-based data logging systems), din ce în ce mai răspândite şi mai folosite datorită multiplelor avantaje legate de facilităţile de viteză, capacitate de stocare şi cost. În continuare ne vom referi la aceste din urmă sisteme bazate pe calculator.

Funcţiile de bază care trebuie realizate de un sistem data logger sunt: achiziţia datelor, stocarea, analiza, vizualizarea, generarea de rapoarte şi distribuirea datelor. Modul de grupare a acestor funcţii de bază într-un sistem data logger este prezentat în Fig. 1.

Achiziţia datelor presupune măsurarea datelor prin intermediul senzorilor, realizarea conectivităţii cu sistemul de achiziţie

Page 90: 41717466-Achizitii-LabVIEW

90

propriu-zis, condiţionarea semnalelor (prin operaţiile de amplificare, izolare galvanică, multiplexare, filtrare, liniarizare etc.) şi conversia analog-numerică.

Fig. 1. Funcţiile de bază ale unui sistem data logger

Analiza datelor achiziţionate cuprinde operaţii care se pot

realiza on-line şi operaţii de prelucrare off-line. Analiza on-line presupune scalarea datelor (exprimarea în unităţi inginereşti), operaţii de semnalizare/alarmare, prelucrarea semnalelor, elaborarea de comenzi în cazul sistemelor de conducere etc. Aceste operaţii de analiză on-line sunt realizate prin software.

Datele achiziţionate sunt stocate (după o eventuală analiză on-line) prin diferite metode şi pe diverse medii de stocare. Operaţia de stocare este în mod evident o funcţie esenţială a sistemelor data logger. După descrierea pe scurt a celorlalte funcţii, vom reveni cu prezentarea tehnicilor de stocare a datelor, în special a formatelor (fişierelor) utilizate pentru stocare.

Analiza off-line a datelor presupune realizarea unor prelucrări matematice, statistice, analiză în domeniul frecvenţă etc.

Vizualizarea datelor se poate realiza în timpul achiziţiei sau ulterior. Pentru afişarea datelor este necesară o interfaţă grafică cu facilităţi de scalare, zoom, legendă etc. Generarea de rapoarte a fost integrată în sistemele data logger pentru creşterea eficienţei şi constă în emiterea de rapoarte într-un format adecvat pentru prezentarea datelor stocate şi analizate. Distribuirea datelor (data sharing) constă în punerea datelor la dispoziţia persoanelor şi instituţiilor cărora le sunt destinate, prin facilităţi cum ar fi cele de networking.

Alegerea software-ului şi hardware-ului pentru un sistem data logger depinde de aplicaţia concretă care trebuie implementată. În

Achiziţia datelor

Stocarea datelor

Analiza datelor (on-line)

Prelucrări off-line

Vizualizare Generare rapoarte Distribuire date

Page 91: 41717466-Achizitii-LabVIEW

91

general, software-ul poate fi de două categorii: soft la cheie (ready-to-run sau turnkey), cum ar fi, de exemplu, pachetul LabVIEW, respectiv medii de dezvoltare a aplicaţiilor data logging. În ceea ce priveşte hardware-ul, sistemele data logger bazate pe calculator pot fi clasificate în patru categorii: sisteme portabile (tip laptop), sisteme desktop, sisteme industriale montate pe rack şi sisteme distribuite.

1.2. Tipuri de fişiere utilizate pentru stocarea datelor Stocarea datelor, ca funcţie esenţială a sistemelor data logger,

se poate realiza prin diferite metode şi medii de stocare, în funcţie de tipul sistemului. Astfel, înregistratoarele clasice utilizează hârtie, sistemele stand-alone utilizează memorii interne, floppy-discuri, cartele PCMCIA (Personal Computer Memory Card International Association) etc., iar sistemele bazate pe calculator folosesc hard-discul propriu, hard-discul altor calculatoare la care sunt conectate printr-o reţea sau diverse tipuri de medii de stocare.

Deoarece în anumite aplicaţii datele ce vor fi stocate sunt achiziţionate cu o viteză foarte mare, software-ul folosit pentru stocarea datelor are un rol esenţial, îndeosebi la sistemele bazate pe calculator. Software-ul determină viteza de stocare pe disc, utilizarea eficientă a spaţiului disponibil pe disc, formatul datelor stocate etc.

Formatul datelor stocate depinde de tipul aplicaţiei, fiind răspândite în general trei tipuri de format (de fişiere): fişiere de tip text (ASCII), fişiere binare şi fişiere utilizate de bazele de date.

• Fişierele text sunt cele mai utilizate şi conţin de regulă un antet (header) şi coloane de date. Antetul furnizează informaţii cum ar fi echipamentul utilizat, canalele de achiziţie folosite, unităţile de măsură etc. Prima coloană de date reprezintă de regulă marca de timp (aşa numitul timestamp) a fiecărui eşantion achiziţionat, iar coloanele următoare reprezintă, de exemplu, datele achiziţionate pe fiecare canal. Fişierele text sunt flexibile, portabile şi pot fi utilizate de multe pachete software. Dezavantajul lor este legat de faptul că ocupă mult spaţiu pe disc şi necesită procesări suplimentare pentru scriere şi citire. Fişierele text sunt utilizate în aplicaţiile data logging lente, cu o cantitate de date relativ scăzută şi care necesită o mare portabilitate.

• Fişierele binare permit utilizarea eficientă a memoriei. În acest caz datele brute achiziţionate pot fi scrise direct în fişier, fără alte prelucrări. În plus, datele binare ocupă mai puţin spaţiu decât echivalentul lor în ASCII. Pe de altă parte, fişierele binare nu pot fi

Page 92: 41717466-Achizitii-LabVIEW

92

vizualizate de soft-urile obişnuite de procesare a documentelor cum ar fi Microsoft Excel sau Word. Datele brute achiziţionate furnizate la ieşirea hardware-ului de achiziţie reprezintă valori binare – de exemplu, pentru un hardware de achiziţie pe 16 biţi, fiecare eşantion achiziţionat este reprezentat ca un număr binar pe 16 biţi. Acest eşantion ocupă prin urmare 16 biţi de memorie (sau 2 octeţi = 2 byte). Datele brute pot fi convertite de către software în date reprezentate în dublă precizie şi în virgulă mobilă, care ocupă de regulă 8 octeţi de memorie (la un eşantion). Dacă este necesară o viteză de scriere pe disc foarte mare, atunci datele brute sunt scrise direct în fişiere binare, aşa cum sunt achiziţionate, şi sunt furnizate informaţii de scalare pentru reprezentarea ulterioară a datelor în dublă precizie şi cu scalarea corespunzătoare. Dacă nu este necesară o viteză foarte mare, atunci datele sunt mai întâi scalate şi apoi scrise în fişiere binare, care vor conţine datele exprimate în dublă precizie şi în unităţi inginereşti. În situaţia unor aplicaţii lente şi cu cantitate mică de date, reprezentate cu precizie redusă, datele scalate se formatează în text ASCII şi astfel creşte portabilitatea (în detrimentul memoriei ocupate).

• Anumite pachete software permit stocarea datelor achiziţionate în baze de date. În acest caz fişierele sunt tot binare, dar datele sunt structurate într-o anumită formă acceptată de baza de date, formă care permite scrierea şi citirea eficientă a datelor. Bazele de date asigură manevrarea optimă a unor mari cantităţi de date, precum şi căutarea eficientă a informaţiilor necesare. De asemenea sunt asigurate facilităţi de arhivare, de acces pentru utilizatori multipli, importul şi exportul datelor de la şi către alte aplicaţii.

Modul de conversie a datelor achiziţionate şi posibilităţile de stocare în diverse tipuri de fişiere sunt prezentate schematic în Fig. 2. Se observă cum dimensiunea fişierelor obţinute este diferită în funcţie de opţiunea de stocare. Există posibilitatea de a stoca datele binare într-o bază de date, fie utilizând datele brute, fie pe cele scalate.

Mediile de stocare actuale permit înmagazinarea unei mari cantităţi de date în sistemele bazate pe calculator. Astfel, hard-discurile au în mod curent peste 40 GB, iar accesul este foarte rapid. În anumite aplicaţii sunt necesare arhivări periodice ale informaţiei şi stocarea pe discuri de rezervă.

Observaţie: Aplicaţiile de stocare cu viteză mare a datelor pe hard-disc se mai numesc aplicaţii de scriere secvenţială (în flux) pe disc – disk streaming. Există echipamente care permit aplicaţii de

Page 93: 41717466-Achizitii-LabVIEW

93

streaming direct de la hardware-ul de achiziţie la mediul de stocare prin intermediul magistralei PCI, ceea ce conduce la viteze de stocare de până la 132 MB/sec pentru calculatoarele actuale.

Fig. 2. Modalităţi de stocare a datelor în aplicaţiile data logging

Hardware de achiziţie

Date brute (binare) 1 eşant.→16 biţi = 2 octeţiEx.: 1011011010111011

Scalare date (reprez. dublă precizie,unit. inginereşti etc.)

Stocare pe hard-disc

Fişier binar – 2KB

Date scalate (binare) 1 eşant.→64 biţi = 8 octeţiEx.: +2.0352281014*e01

Stocare pe hard-disc

Formatare ASCII

Date - format text (ASCII)1 eşant.→12 caractere = = 24 octeţi Ex.: +20.352 m3/h

Stocare pe hard-disc

Fişier text (ASCII)24KB

Date achiziţionate

1024 eşantioane

1024 eşantioane

1024 eşantioane

Fişier binar – 8KB

Structurare date şi stocare pe fişier binar al unei baze de date

Structurare date şi stocare pe fişier binar al unei baze de date

Page 94: 41717466-Achizitii-LabVIEW

94

2. Instrumente virtuale pentru operaţii I/O cu fişiere În aplicaţiile de stocare de date, pe lângă achiziţia propriu-zisă

a datelor, studiată pe larg în lucrările precedente, sunt esenţiale operaţiile de scriere/citire (intrare/ieşire – I/O) a fişierelor. LabVIEW dispune de o serie de instrumente virtuale destinate acestor operaţii, grupate în meniul Functions, biblioteca File I/O (Fig. 3). Aceste VI-uri asigură realizarea de operaţii cum ar fi crearea, deschiderea şi închiderea fişierelor, scrierea şi citirea fişierelor de date, mutarea, ştergerea şi redenumirea fişierelor şi directoarelor, schimbarea caracteristicilor fişierelor etc.

Într-un mod asemănător cu gruparea pe niveluri a VI-urilor de achiziţie şi generare de date, instrumentele din biblioteca File I/O sunt grupate pe trei niveluri şi anume: instrumente de nivel înalt, instrumente de nivel scăzut şi instrumente avansate.

Instrumentele de nivel înalt, localizate pe prima linie a paletei File I/O, realizează operaţii complete (deschidere, scriere sau citire, închidere de fişiere) şi sunt destinate aplicaţiilor uzuale cu fişiere, fiind uşor şi rapid de utilizat, dar nu sunt flexibile şi nu sunt destinate aplicaţiilor de mare viteză. Într-o analogie cu clasificarea limbajelor de programare de la nivelul cod-maşină până la limbajele de nivel înalt, VI-urile avansate sunt cel mai aproape de nivelul cod-maşină, iar instrumentele high-level de limbajele de programare de nivel înalt.

Fig. 3. Gruparea instrumentelor în biblioteca File I/O

High-level file I/O VIs (instrumente de nivel înalt)

Low-level file I/O VIs (instrumente de nivel scăzut)

Advanced file I/O VIs(instrumente avansate)

Page 95: 41717466-Achizitii-LabVIEW

95

Instrumentele de nivel înalt apelează VI-urile de nivel scăzut pentru realizarea operaţiilor cu fişiere. Aceste VI-uri low-level, plasate pe a doua linie a paletei File I/O, sunt destinate realizării unei anumite operaţii cu fişiere, de exemplu deschiderea unui fişier. Aceste VI-uri de nivel scăzut sunt recomandate pentru aplicaţii de mare viteză (disk streaming). VI-urile avansate sunt instrumente de acelaşi nivel cu cele low-level, dar sunt mai puţin utilizate şi sunt plasate în sub-biblioteca Advanced.

Operaţiile uzuale cu fişiere includ trei etape: în prima etapă se deschide sau se creează un fişier, în a doua etapă se scriu sau se citesc datele din fişier iar în a treia etapă se închide fişierul respectiv. Alte operaţii auxiliare permit crearea directoarelor, mutarea, copierea sau ştergerea fişierelor, schimbarea caracteristicilor fişierelor, manipularea căilor de căutare etc.

1. Deschiderea sau crearea unui fişier. Pentru realizarea primei etape dintr-o operaţie uzuală cu fişiere, trebuie specificată locaţia fişierului care va fi deschis sau creat. Pe majoritatea calculatoarelor este utilizat un sistem ierarhic de specificare a locaţiei unui fişier, prin urmare pentru specificarea locaţiei trebuie indicată lista de directoare (plecând de la directorul rădăcină) în care este plasat fişierul respectiv, printr-o cale (path). Dacă instrumentul virtual lucrează cu un fişier care a fost deschis deja (de către alt VI), atunci acest fişier deja deschis este identificat printr-un număr de referinţă numit refnum. Dacă fişierul este închis, atunci indicatorul refnum va fi dezactivat.

Dacă nu este specificată o cale (prin conectarea la un terminal de intrare), există posibilitatea (doar în cazul instrumentelor de nivel înalt) să fie deschisă o fereastră de dialog prin care trebuie specificate calea de căutare şi fişierul în care se vor scrie sau din care se vor citi date.

2. Scrierea sau citirea datelor. A doua etapă a unei operaţii uzuale de lucru cu fişiere este scrierea sau citirea de date în sau din fişierul respectiv. Această etapă se realizează în mod diferit în funcţie de tipul fişierului în care stocăm datele.

Fişierele cu care lucrează LabVIEW pentru stocarea datelor pot fi de tip text, binare sau de tip datalog. Fişierele de tip text sau binare cu care lucrează LabVIEW fac parte din clasa fişierelor byte stream, care înregistrează datele secvenţial şi au ca unitate de bază octetul. Un fişier byte stream poate conţine date LabVIEW omogene

Page 96: 41717466-Achizitii-LabVIEW

96

sau colecţii de date LabVIEW de diverse tipuri (caractere, numere, date booleene, tablouri, clustere).

Un exemplu de fişier byte stream simplu este fişierul text ASCII, care conţine caractere. Un fişier text uzual cu care lucrează LabVIEW, şi care face parte tot din clasa byte stream, este fişierul text de tip foaie de lucru - spreadsheet, care conţine caractere grupate în linii de numere reprezentate în cod ASCII, numere separate în cadrul fiecărei linii prin tab-uri, iar liniile separate între ele prin enter.

Un alt exemplu de fişier byte stream este un tablou de numere binare pe 16 biţi (întregi sau simplă precizie în virgulă mobilă), numere care reprezintă eşantioane achiziţionate. Un fişier byte stream mai complicat este unul în care tabloul de numere binare este precedat de un antet constând în text ASCII care descrie modul şi momentul achiziţiei datelor. Antetul poate fi un cluster care conţine parametri legaţi de achiziţie (canale de achiziţie, factori de scală etc.). Prin urmare, un fişier byte stream poate conţine toate tipurile de date cu care lucrează LabVIEW. Fişierele de tip byte stream, fie că sunt de tip text sau binare pot fi create cu instrumente de nivel înalt sau scăzut din biblioteca File I/O.

Fişierele de tip datalog conţin o secvenţă de înregistrări structurate identic. O înregistrare poate conţine orice tip de date LabVIEW, dar toate înregistrările din fişierul datalog trebuie să aibă aceeaşi structură. Fişierele datalog pot fi create doar cu instrumente de nivel scăzut.

Un fişier byte stream poate fi scris prin adăugarea de noi caractere, numere, tablouri. Datele dintr-un fişier pot fi suprascrise. Un fişier datalog poate fi scris prin adăugarea a câte unei înregistrări la un moment dat, fără a avea posibilitatea de suprascriere.

În ceea ce priveşte operaţia de citire, un fişier byte stream poate fi citit prin specificarea unui index (offset) al octetului (caracterului) de la care se face citirea şi a numărului de octeţi care vor fi citiţi. Fişierele datalog se citesc prin specificarea unui index (offset) al înregistrării de la care se face citirea şi a numărului de înregistrări ce vor fi citite.

Fişierele byte stream se utilizează atunci când dorim stocarea datelor în format text sau spreadsheet, date care vor fi disponibile pentru alte aplicaţii (exterioare LabVIEW). Fişierele byte stream binare se pot folosi pentru înregistrarea şi stocarea continuă a datelor achiziţionate, care vor fi citite secvenţial sau în mod aleator, în

Page 97: 41717466-Achizitii-LabVIEW

97

cantităţi arbitrare. Fişierele datalog se utilizează pentru înregistrarea de rezultate multiple ale unor teste sau a unor semnale care se citesc apoi câte unul şi se tratează în mod individual. Trebuie să se ţină seama de faptul că fişierele datalog sunt fişiere interne LabVIEW şi nu pot fi citite de alte aplicaţii (programe).

3. Închiderea unui fişier se realizează după scrierea sau citirea datelor, cu ajutorul instrumentelor de nivel înalt sau scăzut.

2.1. Operaţii de scriere/citire cu instrumente de nivel înalt Instrumentele de nivel înalt plasate pe prima linie a paletei

File I/O permit realizarea rapidă şi fără efort de programare a unor aplicaţii de scriere/citire simple. Un VI de nivel înalt realizează singur toate cele trei etape de bază ale unei operaţii I/O tipice: deschidere fişier, scriere sau citire, închidere fişier. Din acest motiv, programarea este foarte rapidă. În schimb, aceste VI-uri nu sunt recomandate în operaţii disk streaming. Operaţiile disk streaming necesită o viteză mare care presupune deschiderea unui fişier şi păstrarea acestuia deschis în timp ce instrumente (low-level) plasate, de exemplu, în bucle realizează scrierea datelor. Plasarea într-o buclă a unui VI de nivel înalt ar conduce la operaţii multiple, inutile, de deschidere/închidere a fişierelor.

VI-urile de nivel înalt permit scrierea/citirea următoarelor tipuri de date: şiruri de caractere în sau de la fişiere text, linii de la fişiere text, tablouri monodimensionale (1D) sau bidimensionale (2D) de numere în simplă precizie în sau de la fişiere text spreadsheet, tablouri 1D sau 2D de numere întregi sau simplă precizie în sau de la fişiere binare.

Informaţii complete despre VI-urile de nivel înalt se pot obţine prin apelarea la meniurile de help disponibile în LabVIEW. În continuare vor fi prezentate câteva exemple de VI-uri de nivel înalt şi câteva aplicaţii simple realizate cu acestea. Primul VI de nivel înalt din paleta File I/O este Write To Spreadsheet File.vi (Fig. 4).

Fig. 4. Instrumentul de nivel înalt Write To Spreadsheet File.vi

Page 98: 41717466-Achizitii-LabVIEW

98

Acest VI converteşte un tablou 1D sau 2D de numere (simplă precizie – SGL) într-un şir de caractere pe care îl scrie într-un fişier byte stream nou sau pe care îl adaugă la un fişier existent. Write To Spreadsheet File.vi deschide fişierul ţintă înainte de scriere, iar după încheierea operaţiei de scriere îl închide. Fişierul obţinut va fi unul de tip text spreadsheet, care poate fi citit de multe aplicaţii (de exemplu Excel). Terminalele VI-ului sunt prezentate în Fig. 4: file path furnizează calea (dacă nu este precizat se deschide o fereastră de dialog); la terminalele 2D data sau 1D data se cuplează tabloul care va fi convertit şi scris în fişier; append to file se utilizează doar dacă se doreşte adăugarea datelor la un fişier existent; format precizează tipul de format folosit pentru reprezentarea datelor – de exemplu, formatul implicit %.3f care determină crearea unui şir de caractere suficient de lung pentru a reprezenta întregul număr cu trei digiţi în dreapta punctului zecimal etc. Există un terminal suplimentar – delimiter – care nu apare în Fig. 4 şi care este un şir de caractere ce permite setarea tipului de delimitator între date (implicit tab). În Fig. 5, 6 este prezentată o aplicaţie simplă care converteşte un vector creat cu o buclă For într-un fişier spreadsheet.

Fig. 5. Diagrama aplicaţiei de scriere a unui fişier spreadsheet

Fig. 6. Fereastra panou a aplicaţiei (indicarea căii şi a fişierului)

Page 99: 41717466-Achizitii-LabVIEW

99

Controlul pentru setarea căii de căutare este de tip path (meniul Controls/ Path&Refnum). Aplicaţia creează un fişier multipli_pi.txt la locaţia precizată prin cale, converteşte vectorul 1D care conţine multiplii lui pi (10 numere) în şir de caractere (delimitatorul este tabulator), scrie şirul de caractere în fişier şi apoi îl închide. Fişierul multipli_pi.txt poate fi citit/importat de diverse aplicaţii cum ar fi Notepad (Fig. 7) sau Microsoft Excel (prin import al fişierului .txt sau direct prin precizarea extensiei .xls - Fig. 8).

Fig. 7. Fişierul multipli_pi.txt citit cu Notepad

Fig. 8. Foaie de lucru Excel cu datele din multipli_pi.xls

Instrumentul „dual” pentru Write To Spreadsheet File.vi este Read From Spreadsheet File.vi , ale cărui terminale sunt prezentate în Fig. 9. Acest VI deschide un fişier text, citeşte numărul specificat de linii din fişierul respectiv, începând cu caracterul specificat prin indicatorul offset şi apoi converteşte şirul de caractere într-un tablou 2D de numere în simplă precizie, iar în final închide fişierul. O aplicaţie duală cu cea anterioară, bazată pe instrumentul Read From Spreadsheet File.vi şi care citeşte datele din fişierul multipli_pi.txt este prezentată în Fig. 10, 11.

Fig. 9. Instrumentul de nivel înalt Read From Spreadsheet File.vi

Page 100: 41717466-Achizitii-LabVIEW

100

Fig. 10. Diagrama aplicaţiei de citire a fişierului multipli_pi.txt

Fig. 11. Fereastra panou a aplicaţiei (citirea şi vizualizarea datelor)

Pe lângă VI-urile de nivel înalt descrise, paleta File I/O

cuprinde şi alte instrumente de nivel înalt cum ar fi Write Characters To File.vi şi Read Characters From File.vi, care permit scrierea, respectiv citirea de şiruri de caractere în fişiere text. Instrumentele de nivel înalt care operează cu fişiere binare sunt grupate în sub-biblioteca Binary File VIs, situată tot pe prima linie a paletei File I/O.

Pentru exemplificarea operaţiilor cu fişiere binare vor fi prezentate două aplicaţii simple, de scriere respectiv de citire a unui fişier binar, realizate cu instrumentele Write To SGL File.vi şi Read From SGL File.vi din sub-biblioteca Binary File VIs.

Instrumentul Write To SGL File.vi (terminalele indicate în Fig. 12) deschide un fişier binar, scrie date de tip tablou 1D sau 2D de numere în simplă precizie (SGL) în fişierul respectiv, pe care îl închide la finalul operaţiei de scriere. Instrumentul Read From SGL

Page 101: 41717466-Achizitii-LabVIEW

101

File.vi (terminalele în Fig. 13) deschide fişierul binar specificat, citeşte datele din fişier începând cu poziţia octetului specificat prin indicatorul start of read offset şi în final închide fişierul respectiv.

Fig. 12. Instrumentul de nivel înalt Write To SGL File.vi

Fig. 13. Instrumentul de nivel înalt Read From SGL File.vi

În Fig. 14 şi 15 este prezentată o aplicaţie de scriere a unui

vector de date (1D tip SGL) furnizate de o buclă For (ca şi în aplicaţia de scriere în fişier text) într-un fişier binar numit date_binare_pi. Se utilizează instrumentul Write To SGL File.vi. Spre deosebire de aplicaţia cu fişier text, aici datele binare nu mai sunt convertite în caractere ci sunt scrise direct în fişierul binar. În mod identic pot fi scrise datele achiziţionate prin intermediul VI-urilor de achiziţie. Avantajele faţă de fişierul text sunt: economie de memorie, rapiditate şi precizie. Dezavantajul: fişierul nu mai poate fi citit de aplicaţii uzuale cum ar fi Excel sau Notepad. Pentru citirea datelor dintr-un fişier binar, se poate folosi Read From SGL File.vi în configuraţia din Fig. 16, 17. Se parcurg etapele de deschidere a fişierului date_binare_pi, de citire a datelor şi de închidere a fişierului.

Fig. 14. Scrierea unui fişier binar

Page 102: 41717466-Achizitii-LabVIEW

102

Fig. 15. Specificarea căii şi fişierului pentru scrierea de date binare

Fig. 16. Citirea datelor dintr-un fişier binar

Fig. 17. Fereastra panou a aplicaţiei de citire a fişierului binar

2.2. Operaţii de scriere/citire cu instrumente low-level

Instrumentele de scriere/citire de nivel scăzut sunt plasate pe linia a doua din paleta File I/O (Fig. 3), iar instrumentele avansate (care din punct de vedere al nivelului sunt tot low-level, dar sunt utilizate pentru anumite operaţii speciale) sunt plasate în sub-biblioteca Advanced File Functions din a treia linie a paletei. Aceste VI-uri de nivel scăzut se folosesc pentru realizarea operaţiilor individuale cu fişiere, cum ar fi, de exemplu, deschiderea unui fişier şi

Page 103: 41717466-Achizitii-LabVIEW

103

prin urmare nu asigură (ca VI-urile de nivel înalt) realizarea cu un singur VI a tuturor etapelor necesare pentru scrierea sau citirea datelor - deschidere, scriere/citire şi închidere. În schimb, prin utilizarea instrumentelor low-level se asigură flexibilitatea şi viteza aplicaţiilor.

Printre instrumentele low-level există VI-uri principale, care asigură realizarea etapelor de bază ale operaţiilor cu fişiere: deschidere, scriere, citire, închidere, şi există VI-uri care asigură operaţii auxiliare cum ar fi crearea directoarelor, mutarea, ştergerea sau copierea fişierelor, schimbarea caracteristicilor fişierelor, manipularea căilor de căutare etc. Toate aceste instrumente pot fi analizate prin parcurgerea paletei File I/O şi prin apelarea la meniurile de help. Pentru exemplificarea utilizării VI-urilor de nivel scăzut, aplicaţia de scriere a datelor numerice 1D SGL într-un fişier spreadsheet realizată cu instrumentul de nivel înalt Write To Spreadsheet File.vi (Fig. 5, 6) este dezvoltată cu instrumentele low-level: Open/Create/Replace File.vi, Write File.vi, Close File.vi în Fig. 18. Funcţiile realizate de aceste instrumente sunt clar indicate de numele lor, iar modul de conectare este foarte simplu (detalii despere terminale se pot obţine apelând meniul Online help al fiecărui VI). Instrumentul Array To Spreadsheet String.vi din meniul Functions/ String a fost folosit pentru convertirea vectorului de numere 1D în şir de caractere. Fereastra panou a aplicaţiei este similară cu cea din Fig. 6, iar fişierul poate fi numit multipli_pi.xls şi va putea fi folosit direct în Excel, exact ca în Fig.8 (dacă fişierul cu acest nume există atunci conţinutul acestuia va fi înlocuit cu datele noi, dacă nu, atunci va fi creat în locaţia specificată prin cale).

Instrumentele low-level sunt conectate prin conexiuni de eroare şi refnum (identifică un fişier după deschidere şi până la închidere), similare cu conexiunile de eroare şi task ID de la achiziţia datelor cu instrumente intermediare de achiziţie.

Se observă că sunt necesare mai multe VI-uri faţă de aplicaţia cu instrumente de nivel înalt – deşi acest lucru pare inutil, este esenţial pentru dezvoltarea de aplicaţii de stocare de mare viteză necesare în data logging. În special aplicaţiile de tip disk streaming necesită deschiderea fişierului şi păstrarea acestuia deschis în timp ce alte instrumente realizează operaţii multiple de scriere a datelor (de exemplu prin plasarea instrumentelor într-o buclă While), iar după terminarea scrierii un alt instrument (din afara buclei) închide fişierul.

Page 104: 41717466-Achizitii-LabVIEW

104

Fig. 18. Scrierea unui fişier text cu instrumente low-level

Observaţie: Fişierele de tip datalog, care conţin o secvenţă de

înregistrări structurate identic, pot fi create numai cu instrumente de nivel scăzut (sau avansate). Pentru analiza şi rularea unor aplicaţii care folosesc fişiere datalog se pot parcurge VI-urile din biblioteca Examples\File\datalog.llb. O altă posibilitate de lucru cu înregistrări tip datalog este de a utiliza facilitatea Data Logging din meniul Operate al LabVIEW, care permite realizarea de înregistrări ale panoului frontal al unui VI.

3. Exemplu de achiziţie şi stocare de tip disk streaming Aplicaţiile de tip disk streaming constau în stocarea cu viteză

mare a datelor achiziţionate (de către hardware-ul de achiziţie) pe un mediu de stocare corespunzător (hard-disc). Dezvoltarea unei astfel de aplicaţii în LabVIEW necesită utilizarea unor instrumente de achiziţie, descrise detaliat în lucrările 1 şi 2, precum şi a unor instrumente de operaţii cu fişiere de tip low-level.

În continuare va fi preluată şi reluată aplicaţia de achiziţie continuă (cu buffer circular) a unui semnal sinusoidal furnizat de un generator de semnal, dezvoltată în lucrarea nr. 2, paragraful 3.3 (diagrama din Fig. 15 a lucrării 2). Generatorul este cuplat la intrarea analogică 0 a plăcii AT-MIO-16 prin intermediul modulului de condiţionare 5B41 (a se vedea lucrarea 2). Semnalul sinusoidal provenit de la generator este setat la o frecvenţă de 50 Hz, iar

Page 105: 41717466-Achizitii-LabVIEW

105

frecvenţa de eşantionare (scan rate) este de 500 de eşantioane/sec. Bufferul este de 500 de eşantioane, iar datele achiziţionate în mod continuu sunt puse imediat la dispoziţia utilizatorului. Pentru realizarea aplicaţiei au fost utilizate instrumente intermediare de achiziţie. Pentru stocarea rapidă a datelor achiziţionate într-un fişier, vor fi utilizate, în afara buclei, instrumentele de deschidere şi închidere a fişierului, iar în interiorul buclei instrumentul de scriere. Pentru comoditatea vizualizării şi prelucrării datelor cu alte aplicaţii în acest exemplu va fi utilizat un fişier text. (Pentru creşterea rapidităţii de stocare, a preciziei şi a economiei de memorie ar trebui utilizat un fişier binar, fiind recomandată în plus folosirea instrumentelor de analiză şi afişare ulterior, după realizarea achiziţiei şi stocării datelor). Aşa cum se observă în Fig. 19, conexiunile de eroare trec prin toate instrumentele de achiziţie şi de prelucrare a fişierelor, într-o secvenţă impusă de ordinea de execuţie a instrumentelor respective. Conexiunile task ID şi refnum conectează în mod corespunzător instrumentele de achiziţie, respectiv pe cele de operare cu fişiere Instrumentele AI Config.vi, AI Start.vi, AI Read.vi, AI Clear.vi formează lanţul de achiziţie, iar Open/Create/Replace File.vi, Write File.vi, Close File.vi formează lanţul de operaţii cu fişiere. Datele achiziţionate sunt stocate continuu în fişierul semnal_sinus.txt până la oprirea aplicaţiei, iar formatul datelor (numărul de digiţi la dreapta virgulei etc.) sau delimitatorii folosiţi pot fi schimbaţi prin modificarea corespunzătoare a terminalelor instrumentului Array To Spreadsheet String.vi.

Dacă se doreşte înregistrarea unor informaţii privind marca de timp (timestamp) a datelor sau factori de scală etc., trebuie specificate aceste informaţii într-un antet (header) al fişierului. Astfel de informaţii pot fi obţinute de exemplu prin folosirea VI-ului Get Date/ Time String.vi din biblioteca Functions/Time & Dialog.

După cum se observă din Fig. 19, 20, acest VI furnizează data şi momentul de timp (oră, minut, secundă) la care au fost achiziţionate datele, într-un format precizat, informaţiile de timestamp fiind astfel disponibile. Aceste informaţii trebuie scrise în fişier împreună cu datele achiziţionate propriu-zise (sau într-un fişier separat) utilizând VI-urile pentru operaţii I/O prezentate (pentru a nu încărca diagrama, informaţiile timestamp sunt doar vizualizate în aplicaţie). Pentru a stoca date însoţite de timestamp sunt utile fişierele de tip datalog.

Page 106: 41717466-Achizitii-LabVIEW

106

Fig. 19. Achiziţia şi stocarea datelor în regim de disk streaming

Fig. 20. Fereastra panou a aplicaţiei de disk streaming

Page 107: 41717466-Achizitii-LabVIEW

107

Datele stocate pot fi utilizate ulterior pentru vizualizare, analiză, distribuire etc. De exemplu, prin folosirea unei aplicaţii simple cu VI-ul de nivel înalt Read From Spreadsheet.vi, similară cu cea din Fig. 10, fişierul semnal_sinus.txt poate fi citit, iar datele convertite într-un tablou 2D numeric în simplă precizie pot fi vizualizate cu un Waveform graph (Fig. 21) sau pot fi analizate spectral etc.

Fig. 21. Citirea şi vizualizarea datelor achiziţionate şi stocate

După cum s-a precizat, pentru creşterea rapidităţii de stocare,

a preciziei şi a economiei de memorie trebuie utilizate fişiere binare. În acest sens, aplicaţia din Fig. 19 poate fi transformată uşor prin înlocuirea în calea de căutare a fişierului semnal_sinus.txt cu un fişier binar, numit de exemplu semnal_sinus_bin, iar în bucla While ieşirea voltage data a instrumentului AI Read.vi se leagă direct la intrarea data a VI-ului Write File.vi. Astfel, datele achiziţionate sunt scrise în fişierul binar precizat.

Pentru aprofundarea tehnicilor de operaţii cu fişiere se pot parcurge exemplele de scriere şi citire fişiere din biblioteca Examples\File a LabVIEW. În majoritatea aplicaţiilor trebuie să se acorde o atenţie deosebită conversiei în unităţi inginereşti (de exemplu exprimarea informaţiilor despre temperatură într-un proces de monitorizare – a se vedea Write Temperature To File.vi din Examples\File\smplfile.llb).

Page 108: 41717466-Achizitii-LabVIEW

108

4. Temă de laborator

4.1. Ce înţelegeţi prin operaţii data logging? Să se precizeze funcţiile de bază ale unui sistem data logger. Ce tipuri de fişiere pot fi utilizate pentru stocarea datelor şi ce avantaje/dezavantaje au acestea?

4.2. Să se parcurgă biblioteca File I/O a LabVIEW. Ce tipuri de VI-uri sunt folosite pentru operaţii I/O cu fişiere? Care sunt operaţiile de bază realizate cu fişiere şi care sunt tipurile de fişiere utilizate de LabVIEW pentru stocarea datelor?

4.3. Să se implementeze şi să se ruleze aplicaţia de scriere a unui fişier spreadsheet din Fig. 5, 6. Să se deschidă Notepad şi Microsoft Excel pentru vizualizarea datelor stocate. Să se ruleze aplicaţia de citire a fişierului text din Fig. 10, 11 şi să se verifice corectitudinea datelor. Să se implementeze o altă aplicaţie de stocare, respectiv de citire a fişierelor text cu instrumente de nivel înalt. Să se utilizeze diverşi delimitatori şi formate pentru datele stocate.

4.4. Să se implementeze şi să se ruleze aplicaţia de scriere a unui fişier binar din Fig. 14, 15. Să se ruleze aplicaţia de citire a fişierului binar din Fig. 16, 17 şi să se verifice corectitudinea datelor. Să se implementeze o altă aplicaţie de stocare, respectiv de citire a fişierelor binare cu instrumente de nivel înalt.

4.5. Să se dezvolte aplicaţia de scriere cu instrumente low-level din Fig. 18. Să se vizualizeze fişierul creat cu ajutorul Excel.

4.6. Implementaţi exemplul de achiziţie şi stocare a datelor de tip disk streaming din paragraful 3 (Fig. 19, 20). Utilizaţi generatorul de semnal şi placa AT-MIO-16 din laborator, conform celor precizate. Vizualizaţi datele stocate (aplicaţia din Fig. 21).

4.7. Refaceţi exemplul de la punctul 4.6, pentru acelaşi semnal sinusoidal, dar cu frecvenţa de eşantionare de 50 eşantioane/sec. Ce observaţii puteţi face? Rulaţi aplicaţia şi pentru alte tipuri de semnale obţinute prin intermediul generatorului de semnal, de frecvenţe şi amplitudini diverse.

4.8. Implementaţi o aplicaţie similară cu cea de la punctul 4.5, dar cu stocarea datelor într-un fişier binar. Comparaţi dimensiunea fişierelor create la punctele 4.6, 4.8 (pentru acelaşi semnal şi acelaşi interval de timp de achiziţie – de exemplu 1 minut).

Page 109: 41717466-Achizitii-LabVIEW

109

LUCRAREA NR. 7

Aplicaţie de măsurare şi achiziţie a temperaturii

1. Descrierea aplicaţiei În prezenta lucrare este dezvoltată o aplicaţie de măsurare şi achiziţie a valorilor temperaturii unui lichid dintr-un recipient. Temperatura lichidului din recipient poate fi modificată prin intermediul unei rezistenţe de încălzire.

Temperatura lichidului este măsurată folosind un termocuplu fier-constantan de tip J, cu domeniul de măsurare între 0 – 761 oC. Termocuplul furnizează o tensiune (de ordinul milivolţilor) proporţională cu temperatura lichidului, tensiune care este aplicată la intrarea unui amplificator de precizie, ce asigură pe de o parte amplificarea tensiunii de la intrare şi pe de altă parte compensarea influenţei temperaturii mediului ambiant. Semnalul de tensiune de la ieşirea amplificatorului de precizie este în gama 0 – 10 V c.c. Domeniul de variaţie a temperaturii măsurate este între 20 oC şi 70 oC, ceea ce corespunde domeniului 2 – 5 V pentru tensiunea de ieşire din amplificatorul de precizie. Tensiunea de la ieşirea amplificatorului de precizie este aplicată la intrarea modulului de condiţionare a semnalului 5B31 (National Instruments). Modulul 5B31 asigură izolarea galvanică faţă de placa de achiziţie, precum şi filtrarea semnalului util (are banda de frecvenţă de 4 Hz).

Semnalul condiţionat este aplicat la canalul de intrare analogică 1 al plăcii de achiziţie AT-MIO-16 (descrierea plăcii şi a modului de funcţionare a acesteia este prezentată în Anexa 1). Schema instalaţiei este prezentată în Fig. 1. Semnalul este achiziţionat şi prelucrat prin intermediul unei aplicaţii LabVIEW de achiziţie continuă a datelor analogice (a se vedea Lucrarea nr. 2), realizată cu instrumente intermediare de achiziţie şi cu buffer circular. Aplicaţia asigură achiziţia datelor, scalarea acestora, precum şi vizualizarea temperaturii lichidului din recipient. Pentru prelucrarea ulterioară a datelor se poate realiza stocarea datelor în regim data logger (Lucrarea nr. 6).

Page 110: 41717466-Achizitii-LabVIEW

110

Fig. 1. Schema instalaţiei de măsurare şi achiziţie a temperaturii 2. Măsurarea temperaturii cu termocupluri Un traductor de temperatură cu termocuplu este alcătuit din

termocuplu (care constituie elementul sensibil sau senzorul), cabluri de prelungire şi adaptor. Cablurile de prelungire au rolul de conectare a termocuplului la adaptor şi permit deplasarea joncţiunii de referinţă de la locul măsurării într-o zonă unde este posibilă menţinerea constantă a temperaturii. Adaptorul permite obţinerea semnalului unificat de ieşire.

Termocuplul este un senzor care face conversia din temperatură într-o tensiune termo-electromotoare. Termocuplul este format din două conductoare, de natură diferită, numite termoelectrozi, sudate la unul din capete. Sudura celor doi termoelectrozi formează joncţiunea caldă sau de măsurare, care este imersată în mediul cu temperatura θ de măsurat. Capetele libere ale termoelectrozilor formează joncţiunea rece sau de referinţă, aflată la o

Utilizator

Software de aplicaţieLabVIEW

Placă achiziţie Driver NI-DAQAT-MIO-16H-9

~ AP + CJC Modul 5B31220 V

Calculator

TCR

θ oC

u [mV] U [V]

US [V]Semnal condiţionat

R – rezistenţă de încălzireAP – amplificator de precizie CJC – compensarea joncţiunii reci TC – termocuplu de tip J

Page 111: 41717466-Achizitii-LabVIEW

111

temperatură θ0. Tensiunea termo-electromotoare care apare la capetele libere ale electrozilor ca urmare a diferenţei de temperatură dintre cele două joncţiuni se mai numeşte şi tensiune Seebeck (după numele celui care a descoperit acest efect în 1821 – Thomas Seebeck). Tensiunea termo-electromotoare depinde neliniar de temperatură, însă pentru variaţii mici ale temperaturii relaţia poate fi considerată liniară:

( )0θθ −⋅= STC KE (7.1)

unde TCE este tensiunea termo-electromotoare, iar ]/[ CmVK o

S este coeficientul Seebeck, care se mai numeşte şi sensibilitate a termocuplului.

Fig. 2. Schema constructivă a unui traductor cu termocuplu Termoelectrozii unui termocuplu sunt realizaţi din materiale

omogene, pure, care dezvoltă o anumită tensiune termo-electromotoare în funcţie de temperatură. Dintre materialele utilizate se pot enumera: cupru, fier, constantan (aliaj dintre cupru şi nichel), cromel, nichel, platină etc. Termocuplurile sunt codificate cu litere majuscule, care indică materialele din care sunt construiţi electrozii. De exemplu, termocuplul de tip J are electrozii din fier şi constantan, iar termocuplul de tip T din cupru şi constantan etc.

Utilizarea termocuplurilor pentru măsurarea temperaturii necesită realizarea unor operaţii de condiţionare a semnalului, operaţii descrise pe scurt în continuare.

Adaptor

JC - Joncţiunea caldă JR - Joncţiunea rece

JC

JR

Termocuplu

JR

Cabluri de prelungire

U [V]

(+)

(-)θ

Page 112: 41717466-Achizitii-LabVIEW

112

Filtrarea şi amplificarea semnalului. La ieşirea termocuplurilor semnalul de tensiune este de nivel foarte mic (milivolţi) şi din acest motiv este uşor afectat de zgomote (îndeosebi zgomotele de reţea de 50 – 60 Hz – mai mult, termocuplul acţionează ca o antenă care culege aceste zgomote). Prin urmare, modulele de condiţionare şi hardware-ul de achiziţie care preiau acest semnal trebuie să fie ecranate, iar amplificarea semnalului trebuie să se realizeze cât mai aproape de termocuplu. Pentru siguranţă, se realizează filtrarea semnalului. Pentru măsurarea temperaturii cu termocupluri este indicată utilizarea conexiunii diferenţiale pentru cuplarea la hardware-ul de achiziţie, deoarece astfel se asigură o bună rejecţie a zgomotelor.

Compensarea joncţiunii reci (cold junction compensation - CJC). Termenul de joncţiune rece pentru joncţiunea de referinţă provine de la practica tradiţională a fabricanţilor de termocupluri de a etalona această joncţiune în apă cu gheaţă la 0 oC. Pentru o astfel de etalonare, termocuplul furnizează o tensiune pozitivă atunci când temperatura măsurată este peste 0 oC şi o tensiune negativă atunci când temperatura este sub 0 oC. Deşi oarecum precisă, stabilirea referinţei de temperatură în apă cu gheaţă nu este practică. Abordarea practică utilizată este aceea de a măsura temperatura joncţiunii de referinţă (care este temperatura mediului ambiant în care se află aceasta) cu un senzor de temperatură direct şi de a compensa această temperatură nenulă prin diverse metode. Această procedură poartă numele de compensare a joncţiunii reci (CJC).

Pentru implementarea CJC se pot utiliza două tehnici: compensarea hardware sau compensarea software. Ambele tehnici necesită măsurarea temperaturii joncţiunii de referinţă cu un senzor direct, a cărui ieşire depinde numai de temperatura punctului de măsurare (astfel de senzori sunt termistorii, termorezistenţele, senzorii cu semiconductoare etc.). Compensarea hardware presupune introducerea în circuitul termoelectric a unei surse de tensiune care să anuleze tensiunea apărută ca urmare a temperaturii parazite a joncţiunii reci. Tensiunea de compensare furnizată de sursă este variabilă în funcţie de temperatura mediului ambiant. Dezavantajele acestei soluţii sunt legate de preţ şi de precizie.

Compensarea software presupune ca după măsurarea temperaturii joncţiunii reci cu un senzor direct, o rutină software să

Page 113: 41717466-Achizitii-LabVIEW

113

compenseze tensiunea măsurată prin adăugarea sau scăderea unei valori corespunzătoare pentru eliminarea efectului temperaturii joncţiunii reci. Această compensare se efectuează conform unor formule care depind de tipul termocuplului şi care sunt stocate în bibliotecile pachetului software utilizat (de exemplu, LabVIEW).

Liniarizarea ieşirii termocuplurilor. Relaţia liniară (7.1) nu este valabilă decât pentru variaţii mici ale temperaturii, deoarece coeficientul Seebeck variază foarte mult în funcţie de temperatură. Din acest motiv, mai ales când domeniul temperaturilor măsurate este mare, trebuie să se ţină cont de neliniaritatea intrare-ieşire. Pentru aceasta, se aproximează ieşirea prin funcţii polinomiale de temperatură sau se utilizează tabele de dependenţă temperatură-tensiune, în funcţie de tipul termocuplului.

Pe lângă operaţiile de condiţionare a semnalului furnizat de un termocuplu descrise mai sus, există şi alte facilităţi care sunt asigurate de modulele de condiţionare, cum ar fi detectarea întreruperii circuitului termocuplului. Utilizarea unor circuite de condiţionare cum ar fi cele de tip SCXI, 5B sau SCC ale firmei National Instruments permite obţinerea unor performanţe foarte bune din punct de vedere al preciziei măsurătorilor.

Aplicaţia de măsurare şi achiziţie a temperaturii din această

lucrare utilizează un termocuplu de tip J – fier-constantan, cu domeniul de măsurare între 0 – 761 oC.

Deoarece valoarea tensiunii termo-electromotoare furnizate de termocuplu este foarte mică este necesară amplificarea acesteia cu un amplificator cu impedanţă de intrare şi amplificare mari, tensiune de offset şi derivă termică mici.

Tensiunea de ordinul milivolţilor de la ieşirea termocuplului este aplicată la intrarea unui amplificator de precizie, realizat cu trei circuite integrate speciale. Schema amplificatorului de precizie, precum şi descrierea funcţionării sale sunt prezentate în Anexa 2. Amplificatorul furnizează o tensiune de ieşire între 0-10 V, realizează liniarizarea intrare-ieşire şi compensarea hardware a temperaturii joncţiunii de referinţă. Pentru stabilirea relaţiei temperatură – tensiune de ieşire din amplificator s-au realizat măsurători cu ajutorul unui voltmetru şi a unui termometru de precizie. Rezultatele obţinute au fost prezentate în Anexa 2. Pentru domeniul relativ mic de temperatură corespunzător procesului studiat şi anume 20 – 70 oC a

Page 114: 41717466-Achizitii-LabVIEW

114

rezultat o tensiune de ieşire din amplificator cuprinsă între 2 şi 5 V şi o dependenţă liniară temperatură – tensiune, prezentată în Fig. 3.

Fig. 3. Caracteristica statică temperatură-tensiune

Tensiunea de la ieşirea amplificatorului de precizie este aplicată la intrarea modulului de condiţionare a semnalului 5B31, care asigură izolarea galvanică faţă de placa de achiziţie, precum şi filtrarea semnalului util (banda de frecvenţă este de 4 Hz), care în cazul achiziţiei temperaturii este un semnal lent variabil în timp.

3. Achiziţia, scalarea şi vizualizarea datelor

Semnalul care conţine informaţia despre temperatură provenit de la modulul de condiţionare 5B31 este conectat la canalul de intrare analogică 1 (montaj diferenţial) al plăcii AT-MIO-16. Semnalul este achiziţionat şi prelucrat prin intermediul unei aplicaţii LabVIEW de achiziţie continuă (multi-punct) a datelor analogice, realizată cu instrumente intermediare de achiziţie şi cu buffer circular. Fereastra diagramă a acestei aplicaţii este prezentată în Fig. 4 (a se vedea lucrarea nr. 2 pentru detalii referitoare la achiziţia continuă a datelor, la utilizarea instrumentelor intermediare şi a bufferelor). A fost utilizată o succesiune de instrumente intermediare de achiziţie: AI Config.vi, AI Start.vi, AI Read.vi şi AI Clear.vi, conectate prin conexiuni de tip Task ID şi Error. Bufferul utilizat are dimensiunea de 500 de eşantioane, iar rata de scanare este de 2 eşantioane/sec. Datele achiziţionate în mod continuu sunt puse imediat la dispoziţia utilizatorului. Pentru afişarea datelor achiziţionate în unităţi de temperatură (grade Celsius) se utilizează relaţia de calcul dedusă din

U [V]

θ [oC] 2

5

20 70

Page 115: 41717466-Achizitii-LabVIEW

115

caracteristica statică din Fig. 3. Pentru o eventuală afişare a datelor în grade Fahrenheit se poate utiliza relaţia de conversie:

][5932][ CF °⋅+=° θθ (7.2)

Pentru afişarea datelor au fost utilizate două indicatoare grafice: un Waveform Chart şi un Waveform Graph. Indicatorul grafic de tip chart permite vizualizarea datelor despre temperatură pe intervalul de timp dorit, prin setarea corespunzătoare a parametrului Chart History Length (din meniul indicatorului grafic). Indicatorul de tip graph este util pentru analiza dinamicii procesului măsurat, axa x fiind gradată în unităţi de timp, scalate în funcţie de perioada de eşantionare stabilită. Pentru indicarea temperaturii curente este utilizat un indicator grafic de tip Thermometer. Aplicaţia dezvoltată în diagrama din Fig. 4 a fost rulată în scopul achiziţiei şi vizualizării informaţiei despre temperatura lichidului din recipient. Rezultatele obţinute sunt prezentate în fereastra panou din Fig. 5.

Fig. 4. Achiziţia multi-punct cu buffer circular a temperaturii

Page 116: 41717466-Achizitii-LabVIEW

116

Fig. 5. Vizualizarea temperaturii măsurate şi achiziţionate (fereastra

panou a aplicaţiei) Lichidul din recipient a fost încălzit prin intermediul rezistenţei electrice, după care a fost lăsat să se răcească. Acest ciclu încălzire – răcire a fost repetat pentru a observa dinamica temperaturii. Din Fig. 5 se observă faptul că încălzirea lichidului este mai rapidă decât răcirea. Dinamica generală a procesului este relativ lentă, aşa cum se poate observa din analiza indicatorului de tip graph. Temperatura a fost afişată în grade Celsius, existând posibilitatea de convertire şi afişare în grade Fahrenheit, aşa cum se poate observa din diagrama prezentată în Fig. 4. Pentru aprofundarea noţiunilor şi tehnicilor de achiziţie a temperaturii se pot analiza şi rula diverse exemple din biblioteca Examples a LabVIEW. Una dintre aplicaţiile referitoare la achiziţia şi vizualizarea temperaturii este Temperature System Demo.vi din Examples\ APPS. Panoul frontal al aplicaţiei este prezentat în Fig. 6. Acest VI simulează achiziţia unei temperaturi, care este vizualizată şi analizată; sunt setate temperaturile limită şi sunt semnalizate eventualele depăşiri ale acestor limite etc.

Page 117: 41717466-Achizitii-LabVIEW

117

Fig. 6. Instrumentul Temperature System Demo.vi

LabVIEW dispune de o serie de VI-uri destinate cuplării plăcilor de achiziţie la module de condiţionare a semnalelor de tip SCC şi SCXI, care la rândul lor se cuplează direct la ieşirea unor senzori de temperatură, în particular termocupluri. Aceste VI-uri pot realiza software operaţiile de liniarizare, compensare a joncţiunii reci, scalarea şi reprezentarea datelor în unităţi inginereşti, vizualizarea datelor achiziţionate etc. Exemple de astfel de instrumente se găsesc în Examples\ DAQ\ Analogin\ scxi.llb: SCXI-1102 Thermocuple.vi, SCXI 1120/1121 Thermocuple.vi etc., VI-uri care se utilizează pentru modulele SCXI 1102, 1120, 1121. Aceste module de condiţionare împreună cu instrumentele virtuale corespunzătoare permit conectarea directă şi rapidă a plăcii de achiziţie la termocupluri de diferite tipuri J, K, T etc. Avantajul utilizării modulelor şi instrumentelor virtuale este legat de existenţa în biblioteca LabVIEW a datelor referitoare la termocuplurile standardizate şi rezolvarea software a problemelor de liniarizare şi compensare a joncţiunii reci pentru orice tip de termocuplu din bibliotecă. Astfel, nu mai este necesară construirea de adaptoare hardware pentru fiecare termocuplu, iar efortul de programare este mult diminuat.

Page 118: 41717466-Achizitii-LabVIEW

118

Observaţie: Pentru aprofundarea noţiunilor teoretice şi practice referitoare la tehnicile de măsurare, măsurarea temperaturii şi utilizarea termocuplurilor se pot consulta lucrările [2], [3], [9], [10], [19], [24], [26] din lista de referinţe bibliografice.

4. Temă de laborator

4.1. Care este structura unui traductor cu termocuplu? Ce înţelegeţi prin compensarea joncţiunii reci? Care sunt operaţiile de condiţionare a semnalelor necesare în cazul măsurării temperaturii cu termocupluri?

4.2. Pe baza schemei din Fig. 1 să se conecteze elementele necesare măsurării şi achiziţiei temperaturii lichidului (apă) din recipient. Să se deducă relaţia analitică temperatură-tensiune pe baza caracteristicii statice din Fig. 3. După implementarea aplicaţiei de achiziţie în LabVIEW prezentată în paragraful 3, să se ruleze aplicaţia pentru 5 – 10 minute şi să se observe evoluţia temperaturii după conectarea la reţea a rezistenţei de încălzire.

4.3. Să se refacă punctul 4.2 pentru cazul în care afişarea temperaturii este realizată în grade Fahrenheit, iar achiziţia datelor se efectuează după ce rezistenţa de încălzire este deconectată de la reţea.

4.4. Să se realizeze experimentul de la punctul 4.2 în situaţia în care achiziţia datelor este declanşată printr-un trigger numeric sau software (a se consulta lucrarea nr. 3).

4.5. Să se dezvolte o aplicaţie de achiziţie a temperaturii în regim data logger. Datele vor fi stocate în fişiere binare sau de tip text prin utilizarea instrumentelor de nivel înalt şi apoi în regim disk streaming cu instrumente low-level (a se consulta lucrarea nr. 6).

4.6. Parcurgeţi exemplele referitoare la măsurarea şi achiziţia temperaturii prezentate în Examples\ APPS şi Examples\ DAQ\ Analogin\ scxi.llb.

Page 119: 41717466-Achizitii-LabVIEW

119

LUCRAREA NR. 8

Aplicaţii de achiziţie/generare a semnalului audio (controlul intrărilor/ieşirilor plăcilor de sunet)

1. Noţiuni introductive În varianta LabVIEW 6.1 există posibilitatea de a lucra cu placa

de sunet cu care este prevăzut orice calculator compatibil IBM-PC. Acest lucru conduce la posibilitatea de achiziţie şi/sau generare de semnal audio folosind placa de sunet, microfoane şi boxe audio. De exemplu, utilizând placa de sunet şi boxele audio pot fi testate generatoare de semnal periodic, în timp real, de tip dreptunghiular, triunghiular, dinte de ferestrău sau sinusoidal. Aceste generatoare au fost descrise pe larg în lucrarea Ghid de programare în LabVIEW. Aplicaţii pentru prelucrarea semnalelor (a se vedea bibliografia).

În general, orice sistem de calcul modern este prevăzut cu o placă de sunet mai mult sau mai puţin performantă. Se poate profita de existenţa generală a unei asemenea „plăci de achiziţie” pe orice calculator şi se pot implementa diferite experimente de timp real. Semnalul de intrare analogic provine de la intrarea de microfon iar semnalul analogic de ieşire este generat pe ieşirea către boxe. Având în vedere acest lucru, se pot implementa experimente de timp real de achiziţie, prelucrare şi generare de semnal audio. Lucrarea prezentă abordează în special partea de generare a semnalului audio.

Pentru a obţine generatoare de semnal în timp real trebuie respectate anumite cerinţe. Utilizarea unui generator de semnal din biblioteca Signal Generation/Signal Processing/Analyze a meniului Functions nu permite obţinerea directă de semnal în timp real; aceste semnale sunt sintetizate şi eventual afişate aşa cum ar arăta în timp real, dar generarea lor se face în fracţiuni de secundă sau, oricum, într-un timp mai mare sau mai mic, în funcţie de viteza microprocesorului. Timpul real are cerinţe mult mai drastice. Spre exemplu, dacă se doreşte sintetizarea şi generarea unui semnal în timp real audio pe o durată de 6 secunde, atunci este necesar ca semnalul să fie emis exact pe o durată de 6 secunde – durată măsurată cu un cronometru de

Page 120: 41717466-Achizitii-LabVIEW

120

precizie. Un program în timp real trebuie să funcţioneze în strânsă legătură cu timpul fizic.

Pentru a genera astfel de semnale este necesar să ţinem cont de faptul că placa de sunet este o placă de achiziţie generală care funcţionează sub Windows la frecvenţe prestabilite de 8000, 11025, 22050 sau 44100 Hz. Aceasta înseamnă că dacă dorim să emitem un semnal sonor cu o durată de 2 secunde, generatorul software va trebui să genereze (2 secunde) * (frecvenţa_ eşantionare_placă) eşantioane.

Spre exemplu, dacă lucrăm pe frecvenţa de 22050 Hz şi generăm un semnal cu o durată de 3 secunde, aceasta înseamnă că placa va trebui să primească de la generatorul de semnal software 3 * 22050 = 66150 eşantioane.

Ţinând cont de acest lucru, trebuie făcută o observaţie importantă: numărul de eşantioane cu care se generează o perioadă a semnalului va rezulta în funcţie de frecvenţa de lucru a plăcii de sunet şi de frecvenţa semnalului periodic emis (a se vedea şi considerentele legate de frecvenţa semnalului generat din lucrarea nr. 5). Astfel, dacă generăm un semnal periodic cu frecvenţa de 1500 Hz pe o durată de 3 secunde, atunci semnalul pe o perioadă va fi generat într-un număr de puncte dat de:

( )

( )

perioadaesantioane14

perioadaesantioane

150022050

secundaperioade1500secunde3

secundaesantioane22050secunde3

/

≅=

=⋅

⋅=perioadaanenr_esantio

(8.1)

Folosind acest lucru, se poate genera semnal periodic în timp

real pe o durată de timp prestabilită.

Schemele principiale ale unor aplicaţii de achiziţie, respectiv generare de semnal audio cu plăcile de sunet şi cu LabVIEW sunt prezentate în Fig. 1 şi Fig. 2. Pentru înţelegerea modului în care se realizează achiziţia şi generarea datelor în timp real sunt deosebit de importante noţiunile de flux de date de timp real şi flux de date software. Prin flux de date de timp real se înţelege viteza de prelucrare (procesare) a datelor de către dispozitivele de timp real (plăci de

Page 121: 41717466-Achizitii-LabVIEW

121

achiziţii, plăci audio etc.). Prin flux de date software se înţelege viteza cu care software-ul generează date pentru dispozitivele de timp real de ieşire sau preia date de la dispozitivele de timp real de intrare. Este necesar ca fluxul de date software (de intrare sau de ieşire) să fie compatibil cu cel hardware (de timp real). Dacă există mici diferenţe, se pot folosi buffere pentru compatibilizare.

Fig. 1. Structura unei aplicaţii de achiziţie (intrare) de sunet

Fig. 2. Structura unei aplicaţii de generare (redare, ieşire) de sunet

Page 122: 41717466-Achizitii-LabVIEW

122

2. Instrumente LabVIEW pentru controlul intrărilor/ieşirilor plăcilor de sunet În LabVIEW 6.1 dispunem de instrumente specializate pentru

controlul intrărilor de sunet (de la microfon) şi al ieşirilor de sunet (către boxe), plasate în biblioteca Graphics & Sound a meniului Functions, după cum se vede în Fig. 3.

Fig. 3. Instrumente specializate pentru intrări/ieşiri pe placa de sunet

Între VI-urile de achiziţie/generare a semnalului audio şi VI-urile de achiziţie/generare de uz general prezentate în lucrările 1-5 există anumite similitudini, cum ar fi, de exemplu, conectarea acestora prin conexiuni de tip Task ID in/out şi Error in/out. În continuare vor

Page 123: 41717466-Achizitii-LabVIEW

123

fi prezentate, pe scurt, VI-urile utilizate pentru generarea de semnal audio. În sub-biblioteca Sound Output există 8 instrumente pentru controlul ieşirilor plăcii de sunet. Acestea se folosesc pentru a implementa un flux de operaţii care să conducă la funcţionarea dorită a plăcii de sunet.

Cele mai importante 5 instrumente de control al ieşirii de sunet se conectează prin conexiuni de tip Task ID şi Error într-o succesiune prezentată în Fig. 4.

Fig. 4. Conectarea instrumentelor specializate pentru generarea

ieşirilor pe placa de sunet

Fig. 5. Instrumentul SO Config.vi

Instrumentul SO Config.vi (Sound Output Configuration) este

prezentat în Fig. 5 şi are rolul de a configura dispozitivul de ieşire pentru sunet. Acest VI creează un identificator al task-ului de ieşire sunet (sound output task ID). După folosirea acestui instrument virtual de configurare, acesta va fi trecut în modul pauză. Semnificaţia terminalelor este următoarea:

device este dispozitivul de ieşire pentru operaţii cu sunet sub Windows 95/98/NT. (Această valoare este ignorată de către sistemul de operare de pe Macintosh). Valoarea implicită este 0 şi semnifică placa de sunet în cazul în care nu există şi alte plăci de intrare-ieşire pe aceeaşi placă de bază. Valorile posibile sunt în gama 0 ... n-1, unde n este numărul de dispozitive de ieşire ale calculatorului. sound format este o structură de tip cluster în care se specifică

setările pentru operaţia de redare a sunetului (Mono sau Stereo), se setează rata de eşantionare (redare) la valori din setul 8000, 11025, 22050 sau 44100, şi se interpretează eşantioanele numerice de sunet ca numere întregi pe 8 sau 16 biţi:

- sound quality se setează la valori stereo sau mono

Page 124: 41717466-Achizitii-LabVIEW

124

- rate setează rata de eşantionare pentru operaţiile de intrare sau viteza de redare pentru operaţiile de ieşire. Putem alege între 8000, 11025, 22050, sau 44100 eşantioane/secundă. - bits per sample setează operaţiile cu sunet la 8 sau 16 biţi/eşantion.

La operaţiile de înregistrare de sunet, folosirea configuraţiei Stereo dublează spaţiul de stocare a eşantioanelor de sunet iar folosirea a 16 biţi/eşantion de sunet dublează la rândul ei necesarul de memorie faţă de opţiunea 8 biţi/eşantion. task ID out este un identificator de task ce se transmite la

terminalul task ID in al următorului instrument virtual al fluxului de operaţii cu sunetul.

Instrumentul SO Start.vi (Sound Output Start) – Fig. 6 –declanşează operaţia de generare a sunetului asociată cu taskul corespunzător legat la terminalul task ID in. Dacă dispozitivul funcţionează deja, apelarea acestui instrument nu are nici un efect. Dacă dispozitivul este în mod pauză, se va relua operaţiunea de redare (generare) sunet.

Instrumentul SO Write.vi (Sound Output Write) – Fig. 7 – scrie date către ieşirea de sunet a dispozitivului asociat cu terminalul task ID in. Dacă dispozitivul este funcţional, se redă sunetul imediat. Dacă dispozitivul este în mod pauză, sunetul nu va fi redat până nu se rulează SO Start.vi. La unul dintre cele 4 terminale mono 8 bit, mono 16 bit, stereo 8 bit, stereo 16 bit se conectează datele care reprezintă semnalul numeric sonor în funcţie de modul în care a fost setat să funcţioneze dispozitivul prin SO Config.vi.

Fig. 6. Instrumentul SO Start.vi

Fig. 7. Instrumentul SO Write.vi

Page 125: 41717466-Achizitii-LabVIEW

125

Fig. 8. Instrumentul SO Wait.vi

Instrumentul SO Wait.vi (Sound Output Wait) – Fig. 8 –

aşteaptă până când dispozitivul de ieşire termină de redat toate datele pe care le-a primit anterior prin operaţia SO Write.vi.

Instrumentul SO Clear.vi (Sound Output Clear), prezentat în Fig. 9, închide dispozitivul de ieşire a sunetului şi returnează sistemului toate resursele utilizate de acest dispozitiv.

SO Pause.vi (Sound Output Pause) – Fig. 10 – stopează ieşirea de sunet a dispozitivului corespunzător cu task ID in. Dacă acest dispozitiv se află deja în pauză, apelarea acestui instrument nu are nici un efect. Prin apelarea acestui instrument nu se pierd datele care trebuie redate sonor şi se salvează poziţia curentă (se poate relua redarea din momentul întreruperii atunci când se apelează instrumentul SO Start).

SO Stop.vi (Sound Output Stop), prezentat în Fig. 11, stopează imediat operaţia de redare a sunetului corespunzătoare dispozitivului asociat cu task ID in. Toate datele rămase pentru redare se vor pierde.

Fig. 9. Instrumentul SO Clear.vi

Fig. 10. Instrumentul SO Pause.vi

Fig. 11. Instrumentul SO Stop.vi

Page 126: 41717466-Achizitii-LabVIEW

126

3. Generator virtual de semnal audio

Prin utilizarea unor generatoare de semnal (de formă de undă) de tipul celor prezentate în lucrarea Ghid de programare în LabVIEW. Aplicaţii pentru prelucrarea semnalelor (a se vedea bibliografia), se poate implementa un generator virtual de semnale audio. Generatorul de semnal audio are ca nucleu un generator de semnal (de formă de undă) completat cu anumite extensii. Au fost implementate două variante constructive de generator virtual de semnal audio.

3.1. Generator complex de semnale audio. Varianta 1 Panoul frontal şi diagrama din Fig. 12 şi 13 reprezintă un

generator complex de semnal audio. Schema logică utilizată pentru implementarea acestui

generator este prezentată în Fig. 14. Din Panoul frontal al generatorului se observă o serie de

controale prin care putem modifica atât parametrii plăcii de sunet cât şi parametrii semnalului generat. Putem alege tipul semnalului - Tip semnal (de bază sau reprezentat analitic prin formulă). La rândul său semnalul de bază poate fi sinusoidal, triunghiular, dreptunghiular sau dinte de ferăstrău. Semnalul analitic se poate reprezenta prin mai multe formule analitice. Se poate modifica durata semnalului audio generat şi, de asemenea, avem posibilitatea repetării semnalului generat (Mod redare continuu).

Generatorul virtual implementează schema logică din Fig. 14. Această schemă logică se regăseşte în structura diagramei generatorului din Fig. 13, reluată şi explicată în Fig. 15.

Vor fi explicate în continuare porţiunile funcţionale ale diagramei cu caracter specific generatorului de semnal audio (pentru detalii privind sinteza semnalelor se poate consulta lucrarea Ghid de programare în LabVIEW. Aplicaţii pentru prelucrarea semnalelor - a se vedea bibliografia).

Setare parametri placă de sunet: se referă la obţinerea parametrilor după care va funcţiona placa de sunet. Aceşti parametri se conectează, după cum s-a văzut, la intrarea Sound format a instrumentului virtual SO Config.vi. Aceşti parametri sunt grupaţi într-o structură de tip cluster, iar metodologia de grupare va fi prezentată în etapele următoare.

Page 127: 41717466-Achizitii-LabVIEW

127

Fig. 12. Generator de semnal audio complex. Panoul frontal

Page 128: 41717466-Achizitii-LabVIEW

128

Fig. 13. Generator de semnal audio complex. Diagrama

Page 129: 41717466-Achizitii-LabVIEW

129

Setare parametri: - placa de sunet (stereo/mono, rata esantionare, 8/16 biti/esantion)

Setare parametri: - forma de unda generată (semnal de baza/formula, amplitudine, frecventa, durata)

Generare undă cu parametrii doriţi ca semnal numeric

Condiţionare semnal numeric audio

Redare semnal audio (trimitere către placa de sunet)

Mod redare continuu ? Da

STOP

START

∆Τ

Fig. 14. Schema logică pentru implementarea generatorului de sunet. Varianta 1

a. Se aduce în Panoul Frontal din Controls/Array&Cluster

instrumentul Cluster care se dimensionează pentru a putea include 3 entităţi de tip enumerare (vezi poziţia 1 – Fig. 16)

b. Se aduce în Panoul Frontal din Controls/Ring&Enum instrumentul Enum care se etichetează sound quality (vezi poziţia 2)

c. Aşa cum se prezintă în poziţia 3, se apelează un popdown menu din care selectăm Add Item After, pentru a denumi elementele componente ale controlului enumerare sound quality. Primul element din enumerarea sound quality se va numi mono. Controlul enumerare

Page 130: 41717466-Achizitii-LabVIEW

130

sound quality se poziţionează în aria Cluster ca prim element al structurii. Se repetă operaţia descrisă mai sus: Add Item After, şi denumim următorul element al enumerării stereo. În acest moment structura Cluster va conţine un prim element de tip enumerare, numit sound quality, care are două elemente: mono şi stereo.

d. Repetăm operaţiile de la punctele b şi c pentru alte două enumerări pe care le includem în structură: rate (cu 4 elemente: 8000, 11025, 22050 şi 44100) şi bits per sample (cu 2 elemente: 8 şi 16).

În acest mod se creează o interfaţă cu utilizatorul foarte sugestivă.

Afişare perioadă formă de undă: reprezintă porţiunea de diagramă folosită pentru a afişa forma unei perioade din semnalul furnizat. Acest lucru este deosebit de util pentru a putea vedea care este influenţa creşterii frecvenţei unui semnal periodic asupra formei de undă. Cu cât frecvenţa creşte, cu atât forma de undă a unei perioade va fi mai distorsionată deoarece va fi reprezentată printr-un număr mai mic de puncte.

O undă este de fapt o structură (specifică pentru variantele mai noi ale pachetului software LabVIEW) care se ataşează unei secvenţe numerice. Secvenţa numerică poate fi reprezentată simplu printr-un vector (linie sau coloană), dar se pierde informaţia relativă la momentele de eşantionare la care au fost obţinute aceste valori numerice. O undă este o structură compusă din 3 elemente:

- Momentul iniţial 0t . - Perioada de eşantionare sau pasul de discretizare dt . - Vectorul de valori numerice Putem spune că unda conţine informaţii care pot identifica o

secvenţă numerică sub forma:

( ) ( ) ( )( )

=−++

n

n

yyydtt

dtntydttytyunda

yyyvector

,.....,,1,....,,:

,.....,,:

10

0

000

10

(8.2)

Evident, valorile numerice ale unei unde se presupun egal

repartizate în timp, deci cu ajutorul unei unde nu putem reprezenta decât secvenţe numerice obţinute cu rate de eşantionare constante.

Page 131: 41717466-Achizitii-LabVIEW

131

Fig. 15. Structura diagramei generatorului complex de sunet

Page 132: 41717466-Achizitii-LabVIEW

132

Fig. 16. Setarea parametrilor plăcii de sunet

Din structura reprezentată de undă se extrage doar vectorul de

date din care se reţin numai primele k eşantioane, unde k reprezintă numărul de eşantioane/perioadă. Acest lucru se realizează cu instrumentele Get Waveform Components.vi şi Array Subset.vi (a se vedea Fig. 17).

Page 133: 41717466-Achizitii-LabVIEW

133

Fig. 17. Utilizarea instrumentelor Get Waveform Components.vi şi

Array Subset.vi Condiţionare numerică sunet: transformă reprezentarea în

virgulă mobilă (reală) a secvenţei numerice generate într-o secvenţă de numere întregi fără semn, reprezentată pe 8 biţi, care este acceptată de placa de sunet.

Fig. 18. Prelucrarea undei generate

Unda generată este prelucrată de instrumentul Quik Scale 1D

care normalizează valorile secvenţei numerice, deci ( ) [ ]1,1−∈iy . Prin multiplicare cu 128, valorile vor fi cuprinse între ( ) [ ]128,128−∈iy . Aceste valori sunt aduse în gama ( ) 255,.....,1,0∈iy de către

instrumentul To Unsigned Byte Integer: şi apoi sunt trimise către placa de sunet care va reda sunetul corespunzător secvenţei numerice.

Observaţie: Deseori în practică se doreşte furnizarea unui semnal pe un inteval nedefinit de timp. Din această cauză generatorul a fost prevăzut cu un buton prin care se poate alege Mod redare: timp limitat sau continuu.

Page 134: 41717466-Achizitii-LabVIEW

134

După cum se observă din schema logică din Fig. 14, dacă este selectată această opţiune se reia programul de la început, mai puţin partea de configurare a plăcii de sunet. Într-o asemenea implementare, semnalul audio generat se va auzi cu intermitenţe. Aceste întreruperi, notate în Fig. 14 cu T∆ , sunt cauzate de timpul necesar sistemului pentru a genera semnalul pe încă o perioadă de timp dorită. Aceste întreruperi sunt chiar mai mari în cazul în care folosim un sunet generat de o formulă deoarece această funcţie nu este precompilată iar

T∆ este variabilă, fiind proporţională cu durata semnalului generat. 3.2. Generator complex de semnale audio. Varianta 2 Pentru a micşora neajunsul mai sus menţionat, se poate

modifica structura generatorului, aşa cum se observă în schema logică din Fig. 19. Panoul frontal şi diagrama sunt prezentate în Fig. 20 şi 21.

Setare parametri: - placa de sunet (stereo/mono, rata esantionare, 8/16 biti/esantion)

Setare parametri: - forma de unda generată (semnal de baza/formula, amplitudine, frecventa, durata)

Generare undă cu parametrii doriţi ca semnal numeric

Condiţionare semnal numeric audio

Redare semnal audio (trimitere către placa de sunet)

Mod redare continuu ?Da

STOP

START

∆Τ1

Refresh parametri ?

Nu

Da

∆Τ

Fig. 19. Schema logică pentru implementarea generatorului de sunet. Varianta 2

Page 135: 41717466-Achizitii-LabVIEW

135

Fig. 20. Panoul frontal al generatorului de sunet – varianta 2

Page 136: 41717466-Achizitii-LabVIEW

136

Fig. 21. Diagrama generatorului de sunet – varianta 2

Page 137: 41717466-Achizitii-LabVIEW

137

În Fig. 22 se prezintă modificarea făcută în program. Butonul Refresh parametri se va acţiona atunci când facem o modificare a parametrilor semnalului, în timp ce generatorul funcţionează. La reluarea buclei se va vedea o diferenţă între valoarea actuală a butonului şi cea precedentă, moment în care bucla While este părăsită şi se trece la execuţia buclei While exterioare, care va prelua noile valori ale parametrilor şi va genera semnalul corespunzător, după care se reia procesul de redare pe o perioadă nedeterminată (până la oprire sau o nouă modificare a parametrilor).

Fig. 22. Modificarea diagramei generatorului faţă de varianta 1

Prin modificarea efectuată întreruperile în redarea sunetului se

vor diminua simţitor. Mai mult, această întârziere nu mai este variabilă şi proporţională cu durata de generare a semnalului ci va fi o întrerupere sesizată la reluarea buclei de scriere pe placa de sunet.

4. Temă de laborator

4.1. Care este structura unui aplicaţii de achiziţie / generare a semnalului audio? Ce înţelegeţi prin flux de date hardware şi software? Ce considerente trebuie respectate la stabilirea frecvenţei de generare a semnalului şi a numărului de eşantioane / perioadă?

4.2. Să se parcurgă instrumentele virtuale din biblioteca Graphics & Sound a meniului Functions. Ce înţelegeţi prin conexiuni de tip Task ID şi Error? Care este rolul instrumentelor SO Config.vi şi SO Write.vi într-o aplicaţie de generare a semnalului audio?

Page 138: 41717466-Achizitii-LabVIEW

138

4.3. Descrieţi funcţionarea generatorului virtual de semnal audio – varianta 1. Implementaţi generatorul, rulaţi aplicaţia pe un PC prevăzut cu boxe şi generaţi semnale audio de diferite tipuri (sinusoidal, triunghiular etc.), de diferite frecvenţe şi pe diverse intervale de timp. Observaţi rolul alegerii frecvenţei de eşantionare în raport cu frecvenţa semnalului generat. Verificaţi dacă semnalul generat este în timp real (prin cronometrare). Rulaţi aplicaţia în mod de redare continuă. Ce observaţi?

4.4. Refaceţi experimentele de la punctul 4.3 utilizând varianta 2 de generator de semnal audio. Rulaţi aplicaţia în mod de redare continuă. Care sunt diferenţele pe care le sesizaţi faţă de varianta 1?

Page 139: 41717466-Achizitii-LabVIEW

139

ANEXA 1

Placa de achiziţie AT-MIO-16H National Instruments

(Manual de utilizare - AT-MIO-16 User Manual, National Instruments, SUA, 1995)

- cuprins -

1. Descrierea generală a plăcii de achiziţie AT-MIO-16 141 2. Arhitectura plăcii AT-MIO-16 146

2.1. Circuitul de interfaţă cu canalul I/O al PC-AT 146 2.2. Circuitul de intrări analogice 148 2.3. Achiziţia de date cu placa AT-MIO-16 151 2.4. Controllerul de achiziţie a datelor şi circuitul de

generare a semnalelor de tact (Timing I/O) 155 2.5. Funcţionarea ca numărător/generator de interval de

timp şi ca generator de frecvenţă 157 2.6. Circuitul de ieşiri analogice 159 2.7. Circuitul pentru intrări/ieşiri numerice 161 2.8. Circuitul de interfaţă cu magistrala RTSI 163

3. Configurarea plăcii AT-MIO-16H 165

3.1. Interfaţa cu magistrala AT 165 3.1.1. Selectarea adresei I/O de bază 167 3.1.2. Selectarea canalelor DMA 168 3.1.3. Selectarea întreruperilor 169

3.2. Configurarea intrărilor şi ieşirilor analogice 170 3.2.1. Configurarea intrărilor analogice 171 3.2.2. Configurarea ieşirilor analogice 174 3.2.3. Circuite de izolare galvanică şi

condiţionare semnal 177 3.2.4. Selectarea ceasului prin magistrala RTSI 178

4. Conexiunile plăcii AT-MIO-16 180

4.1. Conexiuni pentru intrări analogice 180

Page 140: 41717466-Achizitii-LabVIEW

140

4.2. Tipuri de surse de semnal 183 4.2.1. Surse de semnal flotante (floating signal source) 183 4.2.2. Surse de semnal raportate la masă

(ground-referenced signal source) 183 4.3. Configuraţii de intrare analogică 184

4.3.1. Consideraţii asupra conexiunii diferenţiale 184 4.3.2. Consideraţii asupra conexiunilor single-ended 187 4.3.3. Consideraţii privind rejecţia pe mod comun 189

4.4. Conexiuni pentru ieşiri analogice 189 4.5. Conexiuni pentru intrări/ieşiri numerice 191 4.6. Conexiuni de alimentare 192 4.7. Conexiuni pentru semnale de tact şi de sincronizare 192

4.7.1. Conexiuni pentru semnale de tact şi sincronizare destinate achiziţiei de date 192

4.7.2. Conexiuni pentru semnale de tact şi sincronizare de uz general 194

Page 141: 41717466-Achizitii-LabVIEW

141

1. Descrierea generală a plăcii de achiziţie AT-MIO-16

În Fig. 1 este prezentată structura generală a unei plăci de achiziţie AT-MIO-16 a firmei National Instruments. Prelucrarea datelor numerice precum şi gestionarea interfeţelor de intrări/ieşiri analogice/numerice se face sub controlul pachetelor de programe LabVIEW ale aceleiaşi firme şi al software-ului (driver) NI-DAQ (National Instruments – Data Acquisition) pentru DOS/ Windows/ LabWindows. Placa de achiziţii AT-MIO-16 poate fi folosită cu LabVIEW (sub Windows) sau LabWindows (sub DOS sau sub Windows), programe inovative ce conţin software pentru dezvoltare de aplicaţii bazate pe această placă de achiziţii. În timp ce LabVIEW foloseşte programarea grafică, LabWindows măreşte capacităţile programelor Microsoft C şi QuickBASIC. Ambele pachete conţin biblioteci extinse pentru achiziţia datelor, controlul instrumentaţiei, analiza datelor şi reprezentarea grafică a datelor.

Fig. 1. Structura generală a unei plăci de achiziţie tip AT-MIO-16

În Fig. 1, DI sunt dispozitive de intrare (achiziţie) care

cuprind intrări numerice de la traductoare sau senzori de semnale

Page 142: 41717466-Achizitii-LabVIEW

142

numerice şi intrări analogice dotate cu convertor analog-numeric (CAN) de la traductoarele sau senzorii de semnale analogice. DO sunt dispozitive de ieşire care cuprind ieşiri numerice pentru acţionări numerice sau semnalizări şi ieşiri analogice dotate cu convertoare numeric-analogice (CNA) pentru comenzile analogice. PC reprezintă calculatorul personal în care se introduce placa de achiziţie, calculator pe care este instalat LabVIEW, iar IU reprezintă interfaţa utilizator.

În afara legăturilor directe cu procesul fizic ce trebuie condus, este necesară existenţa unor legături numerice cu alte sisteme, fie sisteme de aceeaşi natură (cum ar fi cazul sistemelor de conducere distribuite în care se face legătura informaţională între calculatoarele de proces), fie cu instrumente de măsură (osciloscoape, voltmetre numerice etc.) sau regulatoare numerice. Placa este prevăzută cu două tipuri de legături numerice standardizate: legături seriale RS 232C şi legături paralele IEEE 488. Placa AT-MIO-16 poate fi conectată la sistemul SCXI (Signal Conditioning eXtension for Instrumentation), bazat pe module care permit achiziţia a peste 3000 de tipuri de semnale analogice de la termocupluri, termorezistenţe, surse de curent, de tensiune etc. precum şi achiziţia/generarea de semnale numerice de comunicaţie şi control.

Placa AT-MIO-16 asigură tipurile specifice de funcţii ale unei plăci de achiziţie: intrări analogice, ieşiri analogice, intrări/ieşiri numerice, temporizare (generare de interval de timp) şi numărare. Placa de achiziţie AT-MIO-16 se conectează pe placa de bază a unui calculator personal. În Fig. 2 este prezentată varianta compatibilă PC-AT (Advanced Technology).

Placa de achiziţie comunică cu placa de bază a calculatorului prin intermediul Canalului I/O pentru PC/AT. Circuitul de interfaţă constă dintr-o magistrală de adresă de 24 de biţi, o magistrală de date de 16 biţi, o magistrală de control (arbitrare) a accesului direct la memorie (DMA), linii de întrerupere şi câteva semnale de comandă şi control. RTSI Bus este magistrala RTSI (Real-Time System Integration) cu care se pot interfaţa toate plăcile din seria National Instruments (NI) AT. Interfaţa pentru magistrala RTSI are 7 linii trigger şi o linie pentru ceasul de sistem şi permite utilizarea mai multor plăci NI din seria AT în acelaşi PC, plăci care partajează semnalele de pe această magistrală.

Page 143: 41717466-Achizitii-LabVIEW

143

Intrările analogice şi circuitele de achiziţie de date conţin (adresează) până la 16 canale de intrări analogice cu amplificare programabilă software şi un CAN pe 12 biţi. Suplimentar, AT-MIO-16 conţine circuite de achiziţie a datelor pentru generarea semnalelor de timp pentru conversiile analog-numerice multiple şi alte opţiuni avansate. Circuitul pentru intrări analogice constă dintr-un multiplexor de intrare, circuit de selecţie a modului de multiplexare (16 intrări asimetrice – single-ended – sau 8 diferenţiale), un amplificator de instrumentaţie cu amplificare programabilă, un circuit de eşantionare şi reţinere pentru implementarea unui CAN pe 12 biţi şi o stivă FIFO (First In First Out) de 16 cuvinte pe 16 biţi care stochează rezultatele conversiei. CAN este cu aproximări succesive şi suportă la intrare 3 game de tensiuni: bipolare, cu valori între -10V...10V, -5V...5V şi unipolară între 0V...+10V. Convertorul analog-numeric este disponibil în două variante diferite în raport cu timpul maxim de conversie: 25 µ sec sau 9 µ sec. Achiziţia de date se poate face pe un singur canal sau pe mai multe canale, când avem de-a face cu aşa numita achiziţie de date scanată. Ratele (frecvenţele) maxime de achiziţie depind de performanţele CAN şi sunt de 100.000 eşantioane/secundă pentru CAN cu timp maxim de conversie de 9 µ sec sau de 40.000 eşantioane/secundă pentru CAN de 25 µ sec.

Fig. 2. Schema bloc a plăcii de achiziţie AT-MIO-16

Page 144: 41717466-Achizitii-LabVIEW

144

Fiecare placă de achiziţie din seria AT-MIO-16 are un nume diferit care scoate în evidenţă principalele caracteristici constructive. Astfel, avem 4 variante cu numele de AT-MIO-16L/H-9/25. Codificarea L/H se referă la amplificările programabile pe partea de intrări analogice: cele codificate cu H (High) sunt prevăzute cu amplificare programabilă setată la 1, 2, 4 sau 8 iar cele codificate L (Low) sunt prevăzute cu amplificări de 1, 10, 100 sau 500 de ori şi pot fi utilizate la achiziţia de semnal de nivel scăzut. Codificarea 9/25 se referă la timpul maxim de conversie al CAN şi anume 9 sau 25 µ sec. În ceea ce priveşte Circuitul ieşirilor analogice, placa este prevăzută cu două canale de conversie numeric-analogică pe 12 biţi, fiecare canal fiind prevăzut cu ieşiri unipolare sau bipolare cu selecţie internă sau externă a tensiunii de referinţă. Pentru fiecare canal de ieşire analogică, CNA generează un curent proporţional cu tensiunea de intrare de referinţă, multiplicat cu un cod numeric încărcat în prealabil într-un buffer propriu. Acest cod este tocmai numărul care va fi convertit în semnal analogic. Amplificatoarele operaţionale de la ieşire convertesc acest curent de ieşire al CNA într-un semnal de tensiune transmis la conectorii de ieşire. Frecvenţa maximă de generare a datelor este de 250000 de eşantioane/sec.

Circuitul pentru intrări/ieşiri numerice este prevăzut cu 8 linii de intrare/ieşire numerice divizate în două porturi de câte 4 linii fiecare. Ieşirile numerice sunt grupate într-un registru de ieşire de 8 biţi, câte 4 pentru fiecare port de ieşire. În mod asemănător, avem un registru de intrare pe 8 biţi. Ambele registre sunt compatibile TTL şi acţionează TSR (Three State Logic, HiZ). Controllerul de achiziţie date gestionează operaţiile de achiziţie iar Circuitul de generare a semnalelor de tact (Timing I/O) funcţiile generale de intrare/ieşire. Ambele blocuri funcţionează pe baza unui circuit de numărare/generare de interval de timp, care conţine 5 numărătoare programabile pe 16 biţi, compatibile TTL. Plăcile disponibile în laborator sunt de tip AT-MIO-16H-9: AT – se referă la compatibilitatea cu placa de bază a calculatoarelor IBM-PC în tehnologie AT (Advanced Technology). MIO – abrevierea de la Multifunction Input/Output Board. 16 – se referă la numărul de canale de intrare analogică: 16 canale asimetrice (single-ended) sau 8 canale diferenţiale.

Page 145: 41717466-Achizitii-LabVIEW

145

H – se referă la High-level analog inputs, adică la semnale analogice de intrare de nivel mare, care nu necesită amplificări programabile mari pe placă (amplificările pot fi: 1, 2, 4, 8). 9 – se referă la timpul minim de achiziţie pe un canal, adică 9 µ sec. Frecvenţa (rata) maximă de achiziţie este de 100.000 de eşantioane pe secundă. Placa de achiziţie AT-MIO-16H nu dispune de tehnologie Plug-and-play (specifică îndeosebi plăcilor PCI - Peripheral Component Interconnect), fiind o placă tip ISA (Industry Standard Architecture) şi prin urmare este prevăzută cu un comutator DIP (Dual Inline Pin – permite selectarea adresei de bază a plăcii) şi un set de jumpere care trebuie setate în funcţie de arhitectura în care este folosită placa. Pentru setarea şi utilizarea plăcii de achiziţie AT-MIO-16H sunt necesare: placa de achiziţie, driverul NI-DAQ, software-ul de aplicaţie LabVIEW (sau LabWindows sau LabWindows/CVI) şi un calculator. Observaţie: Pentru programarea plăcii se poate utiliza şi programarea la nivel de regiştri, care este însă dificilă, fiind recomandată folosirea NI-DAQ şi a unui soft de aplicaţie.

Placa de achiziţie AT-MIO-16H conţine: • 16 canale single-ended de intrări analogice în domeniile 0÷5V, 0÷10V sau 8 canale diferenţiale în domeniile -5V ÷5V, -10÷10V funcţie de configuraţia hardware; • 2 canale de ieşiri analogice în domeniile 0÷10V, –10 ÷10V; • 2 porturi numerice I/O pe 4 biţi fiecare; • 5 numărătoare independente pe 16 biţi; • un generator de frecvenţă până la 1 MHz; AT-MIO-16 poate fi instalată în orice slot disponibil de 16 biţi

(AT Style - ISA) din calculator. AT-MIO-16 nu poate lucra dacă este instalată într-un slot expandat pe 8 biţi (PC Style). Observaţie: Specificaţiile tehnice complete ale plăcii, precum şi procedurile de calibrare sunt prezentate în manualul de utilizare în limba engleză furnizat de National Instruments: AT-MIO-16 User Manual.

Page 146: 41717466-Achizitii-LabVIEW

146

2. Arhitectura plăcii AT-MIO-16

Aşa cum se poate observa din Fig. 2 şi din descrierea generală din paragraful precedent, placa AT-MIO-16 conţine următoarele blocuri principale: - circuitul de interfaţă cu canalul I/O al PC-AT;

- circuitul de intrări analogice; - circuitul de control al achiziţiei datelor;

- circuitul de generare a semnalelor de tact (Timing I/O); - circuitul de ieşiri analogice;

- circuitul pentru intrări/ieşiri numerice; - circuitul de interfaţă cu magistrala RTSI.

Magistralele interne de date şi control interconectează blocurile componente.

2.1. Circuitul de interfaţă cu canalul I/O al PC-AT Placa AT-MIO-16 dispune de un adaptor de 16 biţi la canalul

I/O al calculatorului PC-AT. Canalul I/O constă într-o magistrală de adrese de 24 de biţi, o magistrală de date de 16 biţi, un controller (arbitru) de magistrală DMA, linii de întrerupere şi semnale de control. Schema bloc cu arhitectura internă este prezentată în Fig. 3.

Circuitul de interfaţă cu canalul I/O este format din regiştri de adrese, un circuit decodificator de adrese, un buffer de date, un bloc de control (generează semnale de control şi sincronizare a interfeţei cu canalul I/O al PC-AT), un circuit de control al întreruperilor şi un circuit arbitru DMA.

Circuitul de interfaţă cu canalul I/O al PC-AT generează semnalele necesare controlului şi monitorizării operaţiilor din circuitele cu funcţii multiple ale AT-MIO-16. Canalul I/O al PC-AT are 24 linii de adresă; AT-MIO-16 foloseşte 10 din aceste linii pentru a decodifica adresa de placă. În acest caz, domeniul adreselor de pe placă este 000H-3FFH. Semnalele SA5…SA9 sunt folosite pentru generarea semnalului de validare a plăcii. SA0…SA4 sunt folosite pentru selectarea regiştrilor de pe placă. Aceste linii de adresă sunt accesate de regiştrii de adresă la începutul transferului I/O. Liniile de adresă accesate trimit aceste adrese şi spre circuitul de decodificare a adresei pe timpul întregului ciclu de transfer I/O. Circuitul de decodificare a adresei generează semnale de selectare a registrului (care specifică ce registru al AT-MIO-16 va fi accesat). Bufferul de

Page 147: 41717466-Achizitii-LabVIEW

147

date controlează direcţia transferului de date pe liniile bidirecţionale de date în funcţie de tipul transferului (scriere sau citire).

Fig. 3. Diagrama circuitului de interfaţă cu canalul I/O al PC-AT

Blocul de control şi sincronizare al interfeţei cu canalul I/O al

PC-AT este folosit pentru generarea semnalelor read-and-write şi pentru definirea ciclurilor de transfer. Un ciclu de transfer poate fi orice operaţie de I/O de date pe 8 sau 16 biţi. AT-MIO-16 semnalează prin canalul I/O al PC-AT momentul în care placa poate fi accesată, când este gata pentru alt transfer şi mărimea cuvântului de date din transferul I/O curent.

Circuitul de control al întreruperilor rutează orice cerere de întrerupere validă prin selectarea liniei de cerere de întrerupere. Cererile de întrerupere sunt semnale de ieşire three state ce permit plăcii AT-MIO-16 să împartă linia de întrerupere cu alte dispozitive. Unsprezece linii de întrerupere sunt disponibile pentru AT-MIO-16: IRQ3, IRQ4, IRQ5, IRQ6, IRQ7, IRQ9, IRQ10, IRQ11, IRQ12, IRQ14 şi IRQ15. AT-MIO-16 poate genera cinci tipuri diferite de întreruperi:

Page 148: 41717466-Achizitii-LabVIEW

148

- atunci când rezultatul unei conversii analog-numerice este disponibil pentru a fi citit din memoria FIFO;

- atunci când operaţia de achiziţie a datelor este completă; - atunci când este recepţionat un semnal (impuls) de terminare a

transferului DMA; - atunci când este detectat un front crescător al unui semnal la

ieşirea OUT 2 a circuitului de numărare/temporizare Am9513A; - atunci când apar semnalele de eroare OVERFLOW sau

OVERRUN. Fiecare dintre aceste întreruperi este individual validată sau

invalidată. Dacă transferul DMA este validat, circuitul de control DMA

generează cereri DMA de fiecare dată când rezultatul măsurării analog-numerice este disponibil la bufferul FIFO al plăcii. Circuitul DMA suportă transferuri DMA pe 16 biţi pe canalul I/O al PC-AT. Canalele DMA 5, 6 şi 7 ale canalului I/O PC-AT sunt disponibile pentru astfel de transferuri. În cadrul circuitului DMA, pentru transferul DMA, poate fi selectat fie modul de transfer mono-canal, fie modul dublu-canal.

2.2. Circuitul de intrări analogice Placa este prevăzută cu 16 canale single-ended de intrări

analogice, numerotate de la 0 la 15. Intrările pot fi configurate folosind jumpere (ştrapuri) şi ca 8 canale diferenţiale de intrări analogice, numerotate de la 0 la 7. Placa AT-MIO-16 se poate folosi împreună cu placa multiplexoare de intrări analogice AMUX-64T pentru extinderea intrărilor la 64 de canale single-ended (32 diferenţiale) sau, prin legarea în cascadă a maximum 4 plăci AMUX-64T, se pot obţine 256 de canale single-ended (sau 128 canale diferenţiale). Placa de achiziţie poate fi folosită împreună cu modulul SCXI pentru condiţionarea semnalelor de intrare.

Circuitul de intrări analogice constă dintr-un multiplexor de intrare, jumpere de selectare a modului multiplexor, amplificator de instrumentaţie (AI) cu câştig programabil software (PGA – Programmable Gain Amplifier), un amplificator sample-and-hold (circuit de eşantionare/memorare), un convertor analog-numeric pe 12 biţi şi o stivă FIFO cu opţiune de extindere a semnului până la bitul 16. Schema bloc a circuitului de intrări analogice este prezentată în Fig. 4.

Page 149: 41717466-Achizitii-LabVIEW

149

Fig. 4. Circuitul de intrări analogice şi controllerul de achiziţie

Multiplexorul de intrare constă din 2 multiplexoare CMOS cu intrări analogice şi are 16 canale analogice de intrare. Multiplexorul MUX0 este conectat la canalele de intrări analogice de la 0 la 7, iar MUX1 la canalele 8…15. Intrările multiplexoarelor sunt prevăzute cu protecţie la supratensiuni de intrare de ±35V dacă placa este alimentată şi ±20V dacă placa este nealimentată.

Ştrapurile de selecţie a modului de multiplexare configurează canalele analogice de intrare ca 16 intrări single-ended sau ca 8 intrări diferenţiale. Atunci când este selectat modul single-ended, ieşirile celor două multiplexoare sunt legate împreună şi rutate la intrarea pozitivă a AI. Intrarea negativă a AI este legată la masa AT-MIO-16 pentru intrare RSE (Referenced Single-Ended input), sau pe calea de întoarcere a semnalelor analogice de intrare, via AI SENSE din conectorul I/O pentru intrarea NRSE (NonReferenced Single-Ended input). Atunci când este selectat modul DIFF, ieşirea MUX0 este rutată la intrarea pozitivă a AI şi ieşirea MUX1 la cea negativă.

Pe placa AT-MIO-16 amplificatorul de instrumentaţie AI îndeplineşte două scopuri. AI converteşte un semnal diferenţial de intrare în semnal single-ended, ţinând cont de masa AT-MIO-16, cu o rată de rejecţie minimă a intrării de 85 dB. Această conversie permite extragerea semnalului analogic de intrare prin separarea de tensiunea de mod comun sau zgomote înainte de începerea eşantionării şi a conversiei. Un al doilea rol al AI este de a amplifica semnalul

Page 150: 41717466-Achizitii-LabVIEW

150

analogic de intrare, înainte ca acesta să fie eşantionat şi convertit, această operaţie crescând rezoluţia şi acurateţea măsurătorii. Câştigul AI este selectat prin software: la AT-MIO-16L se pot selecta câştiguri de 1, 10, 100 şi 500, iar la AT-MIO-16H câştiguri de 1, 2, 4 şi 8.

Selecţia canalului analogic de intrare şi a câştigului este controlată de o memorie Mux-Gain. Aceasta furnizează doi biţi de control pentru setarea amplificării AI şi patru biţi de adresă pentru multiplexor şi pentru circuitul de selecţie a modului de multiplexare.

Amplificatorul sample-and-hold (SHA) permite realizarea conversiei analog-numerice de către convertorul analog-numeric (ADC – Analog to Digital Converter). La începutul conversiei, SHA trece în modul hold (păstrează) care menţine la ieşire o tensiune de valoare staţionară (valoarea care a fost la începutul perioadei de hold) indiferent de schimbarea tensiunii de intrare. Acest SHA furnizează CAN o tensiune stabilă atât timp cât este executată conversia analog-numerică. Fără SHA, semnalul analogic de intrare poate varia pe durata conversiei, aceasta fiind o cauză a erorilor apărute în timpul conversiei. Prin izolarea CAN de semnalul analogic de intrare pe durata conversiei se poate comuta intrarea multiplexorului şi se permite AI să se stabilizeze la o nouă valoare, în timp ce CAN converteşte vechea valoare. Această izolare optimizează performanţele circuitului de intrare în sensul măririi vitezei şi a realizării de conversii analog-numerice multiple.

Convertorul analog-numeric este un convertor pe 12 biţi cu aproximaţii succesive. Rezoluţia de 12 biţi permite furnizarea la ieşirea CAN a unui cuvânt numeric pe 12 biţi care reprezintă valoarea nivelului de tensiune de la intrare. CAN suportă trei domenii de intrare selectabile prin jumpere pe placa AT-MIO-16: -10 ÷ +10V, -5 ÷ +5V şi 0 ÷ 10V. CAN-ul de pe placa AT-MIO-16 este disponibil în două variante: cu durata maximă de conversie de 9 sau 25 µ sec. Atunci când conversia analog-numerică este realizată, CAN-ul transferă rezultatul conversiei în bufferul FIFO al plăcii, care are 12 biţi lăţime şi lungime de 16 cuvinte. La terminarea unei conversii analog-numerice, valoarea rezultată este salvată în memoria FIFO pentru a fi citită ulterior, permiţând convertorului să înceapă o nouă conversie. Bufferul FIFO poate colecta 16 valori ale conversiilor analog-numerice înainte ca informaţia să fie pierdută, astfel că software-ul sau DMA are timp suficient pentru sincronizarea cu

Page 151: 41717466-Achizitii-LabVIEW

151

hardware-ul de achiziţie. Dacă în memoria FIFO sunt stocate mai mult de 16 cuvinte înainte ca aceasta să fie citită, apare o eroare de tip A/D FIFO Overflow şi informaţia rezultată în urma conversiilor este pierdută. Memoria FIFO generează un semnal atunci când conţine rezultatul unei conversii analog-numeric, semnal care poate fi utilizat pentru a genera o cerere DMA sau o întrerupere. Un circuit de extensie pentru semn plasat la ieşirea memoriei FIFO adaugă 4 biţi (MSB) şi anume biţii 15…12 la ieşirea memoriei FIFO care este pe 12 biţi (biţii de la 11 la 0), astfel că rezultatul final al conversiei este pe 16 biţi. Circuitul de extensie pentru semn este programabil software, şi poate genera numere în cod binar natural sau în cod complement faţă de doi. În cod binar natural, biţii 15…12 sunt 0 şi rezultă un domeniu între 0 şi 4.095. În cod complement faţă de doi, bitul MSB al rezultatului pe 12 biţi al conversiei (bitul 11) este inversat şi extins la biţii 15…12, furnizând un domeniu între –2.048 şi 2.047.

2.3. Achiziţia de date cu placa AT-MIO-16 Placa poate realiza achiziţii de date pe un singur canal sau pe

mai multe canale (single-channel data acquisition, respectiv multiple-channel data acquisition). În cazul achiziţiei mono-canal se selectează un singur canal de intrare analogică şi se setează o singură amplificare (care determină, în funcţie de domeniul de intrare, un domeniu efectiv de intrare – a se vedea subcapitolul de configurare a intrărilor analogice). La fiecare perioadă de eşantionare este realizată o singură conversie analog-numerică pe canalul respectiv. Placa AT-MIO-16 permite trei tipuri de achiziţii de date: achiziţie de date mono-canal, achiziţie de date multi-canal cu scanare continuă tip round-robin şi achiziţie de date multi-canal cu intervale de scanare.

În cazul achiziţiei multi-canal, placa AT-MIO-16 scanează un set de canale de intrări analogice, fiecare cu propria sa amplificare (domeniu efectiv de intrare). În cadrul acestei metode, placa stochează o listă sub forma unei secvenţe care precizează canalele analogice care trebuie citite, precum şi amplificările setate pentru canalele respective. Secvenţa poate conţine de la una până la 16 perechi de tip canal analogic/amplificare setată. În timpul citirii, circuitul de intrări analogice realizează câte o conversie analog-numerică pentru fiecare canal analogic (fiecare pereche canal/amplificare) din secvenţa respectivă. În timpul realizării conversiei analog-numerice curente,

Page 152: 41717466-Achizitii-LabVIEW

152

placa comută pe canalul analogic următor din secvenţă, astfel încât achiziţia să fie cât mai rapidă. Atunci când s-a ajuns la sfârşitul secvenţei, placa aşteaptă până la terminarea unui interval de scanare (de citire) înainte de a relua achiziţia canalelor din secvenţă. Canalele sunt citite în mod repetat la începutul fiecărui interval de citire până când este achiziţionat numărul de eşantioane precizat de utilizator.

Pentru a exemplifica tehnica de achiziţie multi-canal, să considerăm că avem o secvenţă de 4 canale analogice, fiecare având setată o anumită amplificare. Vom presupune că am setat intervalul de scanare la 10 secunde, iar perioada sau intervalul inter-canal (intervalul de timp necesar pentru trecerea de la un canal la altul) este de 25 µ sec. Atunci, secvenţa de 4 canale va fi citită la începutul intervalului de citire de 10 secunde, în 100 µ sec, cu 25 µ sec perioada inter-canal. Placa aşteaptă apoi până la terminarea intervalului de citire de 10 secunde, după care reia automat citirea celor 4 canale, şi aşa mai departe până când se achiziţionează numărul de eşantioane cerut. Pentru realizarea unei achiziţii cât mai rapide, se poate seta intervalul de citire la 0 secunde, placa înţelegând prin aceasta că reluarea citirii secvenţei se va face imediat după ce este citit ultimul canal analogic din secvenţă, ceea ce corespunde unei scanări continue, de tip round-robin.

Rata de scanare, denumită şi frecvenţă sau rată de achiziţie sau de citire (scan rate), determină de câte ori pe secundă sunt achiziţionate date de la canalele de intrare. De exemplu, scanarea canalelor de intrare cu o rată de 10 scanări pe secundă semnifică faptul că sunt luate 10 eşantioane la fiecare secundă de la toate canalele de intrare din lista specificată. Inversul acestei rate este chiar intervalul de scanare sau de citire. Un semnal de tact (intern - de pe placă - sau extern), numit tact sau ceas de scanare (scan clock) fixează mărimea ratei de scanare, care controlează intervalul de scanare. Intervalul de timp între achiziţiile de la două canale consecutive este, după cum s-a precizat în exemplul anterior, intervalul sau perioada inter-canal (channel interval sau channel skew), inversa acestui interval fiind rata inter-canal.

Trecerea de la un canal la altul în cadrul unei scanări se face prin urmare într-un interval de timp mai mic decât intervalul de scanare, iar semnalul de ceas care decide trecerea de la un canal la altul poartă numele de tact de canal (channel clock).

Page 153: 41717466-Achizitii-LabVIEW

153

Dacă placa realizează o achiziţie multi-canal de tip round-robin, este utilizat doar semnalul de ceas de canal (Fig. 5), în acest caz fiind vorba de o scanare repetitivă la intervale egale. Dacă sunt utilizate ambele semnale de ceas (de scanare şi de canal) atunci achiziţia multi-canal este cu intervale de scanare (Fig. 6.).

Fig. 5. Scanarea multi-canal de tip round-robin (cu channel clock)

Fig. 6. Achiziţia multi-canal cu intervale de scanare (cu scan clock şi channel clock)

Pe timpul achiziţiei de date mono-canal, memoria mux-gain

este setată să selecteze amplificarea canalului analogic de intrare înainte de iniţializarea achiziţiei de date. Această amplificare şi setarea multiplexorului rămân constante pe întreaga perioada a procesului de achiziţie de date; de aceea, toate datele de conversie analog-numerică sunt citite de la un singur canal.

Tabelul 1. Rata de scanare în funcţie de tipul achiziţiei

Tip placă/ Tip achiziţie

Amplificare (Câştig)

Rata de scanare (scan rate)

Achiziţie de date monocanal: AT-MIO-16(H/L)-25 AT-MIO-16(H/L)-9

orice câştig setat orice câştig setat

40 k eşantionări/sec 100 k eşantionări/sec

Achiziţie de date multicanal: AT-MIO-16(H/L)-25 AT-MIO-16(H/L)-9

câştig = 1, 2, 4, 8 câştig = 10, 100 câştig = 500 câştig = 1, 2, 4, 8 câştig = 10 câştig = 100 câştig = 500

40 k eşantionări/sec 40 k eşantionări/sec 20 k eşantionări/sec 100 k eşantionări/sec 100 k eşantionări/sec 70 k eşantionări/sec 20 k eşantionări/sec

Interval inter-canal Interval scanare

Canal

Interval inter-canal

Canal

Page 154: 41717466-Achizitii-LabVIEW

154

Mărimea ratei de scanare depinde de perioada de conversie a CAN şi de timpul necesar operaţiei sample-and-hold. Atunci când se citesc mai multe canale (achiziţii multi-canal), rata de achiziţie este limitată şi de timpul de stabilizare al multiplexoarelor şi AI, datorat comutării de pe un canal pe altul. După ce are loc comutarea intrării multiplexoarelor, AI trebuie să permită stabilizarea valorii unui nou semnal de intrare înaintea realizării conversiei, în caz contrar precizia dorită nu va fi realizată. Timpul de răspuns depinde de amplificarea selectată şi de alţi factori cum ar fi: modulul de amplificare SCXI (dacă este utilizat), setările filtrelor, impedanţa sursei care se măsoară. Placa AT-MIO-16 poate achiziţiona date mono-canal sau multi-canal prin utilizarea următoarelor moduri de achiziţie:

modul posttrigger modul pretrigger modul dublu bufferat (double-buffered) modul AMUX-64T modul SCXI

Modul posttrigger realizează achiziţia unui număr specificat de eşantioane după recepţionarea unui semnal trigger (de sincronizare). Achiziţia posttrigger (posttrigger-are) se poate iniţializa prin software sau prin aplicarea unui impuls pe intrarea STARTTRIG* a conectorului I/O al plăcii AT-MIO-16 (pentru identificarea pinilor conectorului I/O a se vedea capitolul 4). După ce bufferul care stochează datele achiziţionate (de lungime specificată de utilizator) este plin, achiziţia este stopată.

În cadrul modului pretrigger datele sunt achiziţionate şi înainte şi după primirea unui semnal trigger. Achiziţia de date poate fi iniţiată ca şi în modul posttrigger, prin software sau prin aplicarea unui impuls pe STARTTRIG*. Placa colectează datele într-un buffer precizat de utilizator (fără a număra eşantioanele şi fără oprire) până când recepţionează un impuls pe intrarea STOPTRIG a conectorului I/O. După aceasta, placa va colecta un număr specificat de eşantioane după care stopează achiziţia. Bufferul este tratat ca un buffer circular, adică după ce întregul buffer este completat, datele sunt stocate de la început prin suprascrierea datelor celor mai vechi. La terminarea achiziţiei, bufferul conţine eşantioane atât de dinaintea cât şi după apariţia semnalului trigger. Numărul de eşantioane salvate în buffer depinde de lungimea acestuia (specificată de utilizator) şi de numărul specificat de eşantioane de achiziţionat după apariţia semnalului de trigger.

Page 155: 41717466-Achizitii-LabVIEW

155

Modul de achiziţie de tip double-buffered utilizează o tehnică asemănătoare cu modul pretrigger, completând bufferul specificat de utilizator în mod continuu. Spre deosebire de modul pretrigger, aici se apelează la un al doilea buffer, care preia datele vechi din primul buffer, înainte ca acestea să fie suprascrise.

Modul AMUX-64T presupune utilizarea uneia sau mai multor plăci AMUX-64T pentru extinderea numărului de intrări analogice disponibile. Semnalele analogice se conectează în acest caz la placa AMUX-64T şi nu la placa AT-MIO-16. Modul SCXI presupune utilizarea unor plăci (module) de condiţionare a semnalelor SCXI.

2.4. Controllerul de achiziţie a datelor şi circuitul de generare a semnalelor de tact (Timing I/O) Placa AT-MIO-16 conţine un circuit de control al achiziţiei de

date, al cărui rol în cadrul circuitului de intrări analogice poate fi observat în Fig. 4. Acest controller permite generarea de semnale de tact (cum ar fi scan clock, channel clock etc.) pentru controlul automat al conversiilor analog-numerice incluzând totodată şi opţiuni avansate cum ar fi triggerare externă şi generare semnale de ceas.

Controllerul de achiziţie a datelor generează semnale de tact şi semnale care iniţiază operaţia de achiziţie de date, iniţiază fiecare conversie analog-numerică, validează operaţiile de achiziţie de date. Sursele pentru aceste semnale sunt fie numărătoarele circuitului Am9513A de pe placă, fie surse externe. În acest ultim caz semnalele provin din exterior prin conectorul I/O al AT-MIO-16 sau de la alte plăci din seriile AT conectate la magistrala RTSI.

Circuitul Am9513A pe 16 biţi conţine 5 numărătoare (schema bloc a unui numărător este prezentată în Fig. 7):

• Numărătorul 1 se foloseşte pentru citirea automată multi-canal cu placa AMUX-64T sau cu module SCXI. Dacă nu se utilizează nici una dintre acestea, numărătorul 1 este disponibil pentru realizarea unor funcţii generale de numărare.

• Numărătorul 2 se foloseşte implicit pentru generarea tactului de citire multi-canal, atunci când intervalul de citire (scan interval) este diferit de 0. Numărătorul 2 poate fi utilizat pentru generarea de semnale de tip formă de undă (waveform). Dacă se citeşte numai un canal sau se opreşte tactul, numărătorul 2 este disponibil pentru diverse funcţii generale de numărare.

Page 156: 41717466-Achizitii-LabVIEW

156

Fig. 7. Schema bloc a unui numărător din circuitul Am9513A

• Numărătorul 3 generează tactul pentru controlul perioadei de eşantionare şi este totdeauna rezervat pentru operaţiile de achiziţie.

• Numărătorul 4 este rezervat pentru numărarea eşantioanelor în cadrul achiziţiei de date.

• Numărătorul 5 este folosit dacă numărul de eşantioane este mai mare de 65.535. În caz contrar numărătorul 5 este disponibil pentru realizarea unor funcţii generale de numărare.

Achiziţia de date presupune utilizarea următoarelor tipuri de semnale:

- start trigger – este un semnal care iniţializează secvenţa de achiziţie de date. Acest semnal poate fi furnizat din exterior prin intrarea STARTRIG* a conectorului I/O sau prin software.

- sample counter – înregistrează numărul conversiilor analog-numerice (eşantioanelor) şi stopează achiziţia de date atunci când a fost achiziţionat numărul specificat de eşantioane.

- conversion pulse – este un semnal care generează un impuls la fiecare perioadă de eşantionare, iniţializând conversia analog-numerică. Semnalul poate fi generat de către circuitul Am9315 de pe placă (printr-un tact de ceas programabil) sau poate fi furnizat din exterior prin intrarea EXTCONV* a conectorului I/O al plăcii.

- stop trigger – este un semnal utilizat în cadrul achiziţiei pretrigger pentru a informa placa AT-MIO-16 că poate opri achiziţia de date atunci când a fost colectat numărul specificat de eşantioane. Până la aplicarea semnalului stop trigger la intrarea STOPTRIG a conectorului I/O, achiziţia de date se desfăşoară în mod continuu, scriind şi rescriind date în buffer.

- timebase clock – este un semnal de ceas care constituie baza de timp pentru controlul perioadei de eşantionare. Acest semnal poate fi generat intern de către placă, fiind posibile frecvenţe de 1 MHz, 100 KHz, 10 KHz, 1 KHz sau 100 Hz, sau din exterior, prin aplicarea unui semnal de ceas la intrarea SOURCE5 a conectorului I/O.

SOURCE

GATE

OUT Numărător

Page 157: 41717466-Achizitii-LabVIEW

157

Circuitul de numărare/sincronizare Am9513A este utilizat şi de către circuitul de generare a semnalelor de tact pentru generarea unor semnale de tact şi numărare de uz general (a se vedea Fig. 2 pentru înţelegerea rolului circuitelor de achiziţii de date şi timing I/O în cadrul arhitecturii generale a plăcii). Schema bloc a circuitului de generare a semnalelor de tact de uz general este prezentată în Fig. 8.

Fig. 8. Schema circuitului de generare a semnalelor de tact Circuitul de generare a semnalelor de tact permite

funcţionarea plăcii ca numărător/generator de interval de timp, precum şi ca generator de frecvenţă, programabil.

2.5. Funcţionarea ca numărător/generator de interval de

timp şi ca generator de frecvenţă Funcţionarea ca numărător/generator de intervale de timp După cum s-a văzut în paragraful precedent, placa AT-MIO-

16 conţine circuitul integrat de numărare / sincronizare Am9513A care are 5 numărătoare/temporizatoare individuale pe 16 biţi şi generator de frecvenţă, programabil pe 4 biţi.

Pentru operaţiile de numărare, numărătoarele pot utiliza diverse baze de timp, folosind fie semnalele furnizate la intrările

Page 158: 41717466-Achizitii-LabVIEW

158

SOURCE sau GATE, fie bazele de timp interne furnizate de circuitul Am9513A. Sunt disponibile următoarele baze de timp interne:

- ceas de 1 MHz (rezoluţie 1 µs); - ceas de 100 KHz (rezoluţie 10 µs); - ceas de 10 KHz (rezoluţie 100 µs); - ceas de 1 KHz (rezoluţie 1 ms); - ceas de 100 Hz (rezoluţie 10 ms). Un numărător poate fi programat să utilizeze ca bază de timp

ieşirea unui numărător de rang imediat inferior, fiind posibilă astfel concatenarea numărătoarelor (de exemplu, numărătorul 2 poate fi programat să numere ieşirea numărătorului 3, ceea ce conduce la crearea unui numărător pe 32 de biţi).

Un numărător poate fi configurat pentru numărare pe front coborâtor sau crescător al semnalului bază de timp (indiferent dacă acest semnal este o bază de timp internă, un semnal pe intrarea SOURCE, pe intrarea GATE sau provine de la un numărător de rang imediat inferior).

Intrarea GATE poate fi folosită pentru declanşarea sau oprirea unei operaţiuni de numărare. Circuitul Am9513A are disponibile 8 moduri de declanşare: - fără declanşare - numărătorul se poate porni/opri prin soft; - declanşare pe nivel înalt (high-level gating) - numărătorul este activ când intrarea GATE este în 1 logic; numărătorul este oprit când intrarea este în 0 logic; - declanşare pe nivel scăzut (low-level gating) - numărătorul este activ când intrarea pe poartă (GATE) este în 0 logic; numărătorul este oprit când intrarea este în 1 logic; - declanşare pe front crescător - numărătorul este activat pe frontul crescător al semnalului de la intrarea GATE; - declanşare pe front coborâtor - numărătorul este activat pe frontul descrescător al semnalului de la intrarea pe poartă; - declanşare pe impulsul numărătorului inferior - numărătorul este activ când numărătorul de rang imediat inferior din listă termină numărarea şi generează un impuls terminal count; - declanşare pe nivel 1 logic al numărătorului n+1 - numărătorul este activ atunci când intrarea GATE a numărătorului de rang imediat superior din listă este în 1 logic, altfel numărarea este suspendată;

Page 159: 41717466-Achizitii-LabVIEW

159

- declanşare pe nivel 1 logic al numărătorului n-1 - numărătorul este activ atunci când intrarea GATE a numărătorului de rang imediat inferior din listă este în 1 logic, altfel numărarea este suspendată.

Un numărător generează două tipuri de semnale la ieşire: un semnal numit terminal count pulse sau un semnal terminal count toggle. În modul terminal count pulse, numărătorul generează un impuls la ieşire atunci când ajunge la sfârşitul numărării (adică la 65535 – 16 biţi – pentru numărare crescătoare sau la 0 pentru numărare descrescătoare) şi reîncepe numărătoarea. În modul terminal count toggle, ieşirea numărătorului îşi schimbă starea (din 0 în 1 sau invers) atunci când ajunge la sfârşitul numărării şi reîncepe numărătoarea. Dacă numărătorul nu lucrează, ieşirea acestuia se poate seta în una din cele 3 stări: impedanţă înaltă, 0 logic sau 1 logic.

Funcţionarea ca generator de frecvenţă programabil Placa AT-MIO-16H poate genera un semnal de ieşire cu

frecvenţa programabilă, pe 4 biţi. Acest semnal de ieşire are frecvenţa egală cu un divizor al frecvenţei semnalului bază de timp utilizat. Pentru generarea semnalului de frecvenţă programabilă (disponibil pe ieşirea FOUT a conectorului I/O) se poate utiliza oricare din bazele de timp interne (de la 1 MHz la 100 Hz) sau intrările SOURCE sau GATE ale numărătoarelor de pe placă.

2.6. Circuitul de ieşiri analogice

Placa AT-MIO-16 conţine 2 canale de ieşiri analogice, numerotate 0 şi 1. Fiecare canal de ieşire conţine un convertor numeric-analogic (CNA) pe 12 biţi. Fiecare canal de ieşire se poate configura prin folosirea de jumpere, pentru intervalele -10÷10 V (bipolar) sau 0÷10 V (unipolar). Pentru canalele de ieşire este disponibilă o tensiune de referinţă de pe placă, de 10 V. Poate fi utilizată şi o referinţă externă, caz în care limitele de ieşire sunt între -Vref şi Vref pentru configuraţia bipolară, sau 0÷Vref pentru configuraţia unipolară, unde Vref este tensiunea de referinţă externă (Vref este maximum 10 V). Tensiunile care se obţin la ieşirea convertoarelor numeric-analogice depind de valorile datelor din buffer, de nivelul tensiunii de referinţă Vref şi de setarea polarităţii ieşirilor analogice.

Page 160: 41717466-Achizitii-LabVIEW

160

Observaţie: Funcţiile de generare de forme de undă – waveform – (de tip Instrument Virtual VI - LabVIEW sau funcţii specializate din driverele NI-DAQ) pot scrie continuu valori pe unul sau pe ambele canale de ieşire; pentru aceasta se foloseşte un semnal de tact de pe placă sau un semnal de tact extern pentru a citi date dintr-un buffer şi a le trimite la intervale regulate de timp convertoarelor numeric-analogice.

Circuitul de ieşiri analogice conţine cele două canale de ieşire, care, pe lângă CNA-uri, sunt prevăzute cu amplificatoare operaţionale de instrumentaţie (AO), jumpere de selectare a referinţei şi jumpere de selectare a ieşirii unipolare/bipolare. CNA-ul de pe fiecare canal de ieşire analogică generează un curent proporţional cu tensiunea de intrare de referinţă (Vref) multiplicată prin codul numeric încărcat în CNA. Fiecare CNA poate fi încărcat cu un cod numeric pe 12 biţi. Amplificatoarele de instrumentaţie de ieşire convertesc curentul de ieşire al CNA în tensiune de ieşire furnizată la pinii DAC0 OUT şi DAC1 OUT ai conectorului I/O. Diagrama bloc a circuitului de ieşiri analogice este prezentată în Fig. 9.

Fig. 9. Schema bloc a circuitului de ieşiri analogice

Page 161: 41717466-Achizitii-LabVIEW

161

Ieşirea circuitelor CNA+AO poate fi configurată prin jumpere să furnizeze un domeniu de ieşire unipolară sau bipolară. Pentru ieşirea unipolară avem un domeniu de tensiune de ieşire de la 0 la +Vref -1LSB V. Ieşirea bipolară furnizează un domeniu de tensiune de la -Vref la +Vref -1LSB V. Pentru ieşirea unipolară, 0V la ieşire corespund la un cuvânt numeric cu codul zero. Pentru ieşirea bipolară, forma codului numeric de intrare este selectabilă prin jumpere. În cod binar natural, 0V la ieşire corespund unui cuvânt numeric cu codul 2.048. Dacă este selectată forma în complement faţă de 2, 0V corespund cuvântului numeric cu codul zero. Pentru ieşire unipolară 1LSB = Vref /4.096. Pentru ieşire bipolară 1LSB = Vref /2.048.

Sursa de tensiune de referinţă pentru fiecare CNA este selectabilă prin jumpere şi poate să fie internă sau externă, primită pe intrarea EXTREF. Referinţa externă poate fi orice semnal de c.c. sau c.a. Dacă este aplicată o referinţă de c.a., canalul de ieşire analogică acţionează ca un atenuator de semnal, şi semnalul de c.a. apare la ieşire atenuat cu codul numeric divizat la 4.096 pentru ieşirea unipolară. Ieşirea bipolară cu referinţă de c.a. furnizează o multiplicare în 4 cadrane, ceea ce înseamnă că semnalul este inversat pentru codurile numerice 0÷2.047 şi nu este inversat pentru codurile 2.048 ÷ 4.095. În cod binar natural, cuvântul numeric cu codul 2.048 atenuează semnalul de intrare la 0V. Această atenuare este echivalentă cu multiplicarea semnalului cu (cuvânt numeric cu cod -2.048)/2.048. În modul complement faţă de doi, cuvântul numeric cu codul zero atenuează semnalul de intrare la 0V.

Tensiunea de referinţă internă este o versiune bufferată a referinţei de 10V furnizate la CAN. Folosind referinţa internă se obţine un domeniu de tensiuni de ieşire între 0V şi 9,9976V în paşi de 2,44mV pentru ieşire unipolară şi un domeniu de tensiuni de ieşire între -10V şi 9,9951V în paşi de 4,88mV pentru ieşire bipolară. 2.7. Circuitul pentru intrări/ieşiri numerice

Placa AT-MIO-16 dispune de opt linii numerice de

intrare/ieşire, divizate în două porturi I/O de 4 biţi fiecare notate portul 0 şi portul 1. Cei 4 biţi ai unui port se numesc ADIO şi BDIO (Digital Input/Output A, respectiv B). Porturile 0 şi 1 pot fi configurate ca porturi de intrare sau de ieşire. Oricare port configurat ca port de ieşire are posibilităţi read-back (deşi este port de ieşire, acesta se poate citi

Page 162: 41717466-Achizitii-LabVIEW

162

şi se pot obţine valorile numerice). Porturile numerice ale plăcii operează numai în mod non-latched (no-handshaking).

Observaţie: În general, transferul datelor numerice se poate realiza în două moduri: modul no-handshaking (non-latched) sau modul handshaking (latched). În primul caz se realizează un transfer simplu al datelor către un port de ieşire (scriere) sau dinspre un port de intrare (citire), fără a exista un semnal de tip handshaking („strângere de mână”). În modul handshaking, un port numeric I/O preia datele de la intrare atunci când recepţionează un semnal handshake sau generează un semnal handshake atunci când sunt scrise date la ieşire. Astfel, se poate citi starea unui port sau unui grup de porturi pentru a determina dacă un dispozitiv extern a acceptat datele scrise la un port de ieşire sau dacă a trimis date la un port de intrare. Aplicaţiile de conducere sau de monitorizare a proceselor utilizează de regulă modul no-handshaking, în timp ce aplicaţiile de comunicaţii de date (cum ar fi transferul de date între calculatoare) utilizează modul handshaking. Cele două porturi ale plăcii, de câte 4 linii fiecare, sunt localizate la pinii ADIO 3…0 şi BDIO 3…0 ai conectorului I/O al plăcii. În Fig. 10 este prezentată schema bloc a circuitului pentru intrări/ieşiri numerice.

Fig. 10. Circuitul de intrări/ieşiri numerice

Page 163: 41717466-Achizitii-LabVIEW

163

Circuitul de intrări/ieşiri numerice conţine un Registru de Ieşiri Numerice DOR care controlează ieşirile numerice şi un Registru de Intrări Numerice DIR care monitorizează intrările numerice.

Registrul DOR (Digital Output Register) este un registru pe 8 biţi care conţine valorile numerice de ieşire atât pentru portul 0 cât şi pentru portul 1. Atunci când portul 0 este activat, biţii 3…0 din DOR sunt trimişi către liniile numerice ADIO 3…0. Atunci când portul 1 este activat, biţii 7…4 din DOR sunt transmişi către liniile numerice BDIO 3…0.

Prin citirea registrului DIR (Digital Input Register) se citeşte de fapt starea liniilor numerice I/O. Liniile numerice ADIO 3…0 furnizează biţii 3…0 ai DIR, iar liniile numerice BDIO 3…0 furnizează biţii 7…4 ai DIR.

Atunci când un port (A sau B) este activat, DIR serveşte ca un registru read-back, returnând valoarea numerică a portului respectiv. Atunci când un port nu este activat, DIR returnează starea liniilor numerice I/O furnizată de un dispozitiv extern.

Observaţie: Pentru controlul porturilor de pe placă se pot folosi VI-uri pentru I/O numerice (a se vedea biblioteca LabVIEW Data Acquisition DAQ). VI-urile numerice accesează portul ADIO ca port 0 şi portul BDIO ca port 1.

2.8. Circuitul de interfaţă cu magistrala RTSI

RTSI Bus este magistrala RTSI (Real-Time System

Integration) cu care se pot interfaţa toate plăcile din seria National Instruments AT. Circuitul de interfaţă cu magistrala RTSI are 7 linii trigger şi o linie pentru ceasul de sistem şi permite utilizarea mai multor plăci NI din seria AT în acelaşi PC, plăci care partajează semnalele de pe această magistrală. În Fig. 11 este prezentat circuitul de interfaţă cu magistrala RTSI.

Comutatorul RTSI (RTSI Switch) din Fig. 11 este un circuit integrat NI care are pinii B6…0 conectaţi la 7 linii de trigger ale magistralei RTSI şi pinii A6…0 la şapte semnale ale plăcii AT-MIO-16. Comutatorul RTSI permite controlul liniilor de trigger prin semnalele conectate la pinii A6…0 sau viceversa, obţinându-se o schemă de interconectare flexibilă pentru plăcile de tip AT-MIO care gestionează magistrala RTSI. Comutatorul RTSI poate fi programat prin intermediul intrării de selecţie /SEL şi intrării de date DATA.

Page 164: 41717466-Achizitii-LabVIEW

164

Fig. 11. Circuitul de interfaţă cu magistrala RTSI

Page 165: 41717466-Achizitii-LabVIEW

165

3. Configurarea plăcii AT-MIO-16H Placa AT-MIO-16H conţine 13 jumpere (ştrapuri) şi un

comutator DIP pentru configurarea interfeţei cu magistrala AT şi setarea intrărilor şi ieşirilor analogice (Analog I/O settings).

Comutatorul DIP este folosit pentru setarea adresei I/O de bază. Două jumpere sunt folosite pentru selectarea canalului de întrerupere şi pentru accesul direct la memorie (DMA – Direct Memory Access). Cele 11 jumpere rămase sunt folosite pentru a schimba configuraţia circuitelor de intrări şi ieşiri analogice.

Jumperele W1, W4, W6 şi W9 configurează circuitul de intrări analogice. Jumperele W2, W3, W7, W8, W10 şi W11 configurează circuitul de ieşiri analogice. Jumperul W5 selectează semnalul de ceas utilizat de Am9513 Counter/Timer şi cel de ceas pe/de pe magistrala RTSI (Real Time System Interface). Jumperele W12 şi W13 selectează canalul DMA, respectiv, nivelul de întrerupere. Dispunerea jumperelor pe placă este prezentată în Fig. 12.

3.1. Interfaţa cu magistrala AT AT-MIO-16H este configurată implicit cu o adresă I/O de

bază egală cu 220H, să folosească canalele DMA 6 şi 7, şi nivelul de întrerupere 10. Această setare implicită este prezentată în Tabelul 2. Dacă setările implicite pentru adresa I/O de bază, canalul DMA sau nivelul de întrerupere determină intrarea în conflict cu un alt dispozitiv (placă) al sistemului, atunci aceste setări trebuie modificate fie pentru dispozitivul deja instalat în calculator fie pentru placa AT-MIO-16, după metodologia descrisă în continuare.

Tabelul 2. Setările implicite ale interfeţei cu magistrala AT

Adresa I/O de bază

220 H Domeniu: 220 H – 23F H

Se selectează prin poziţionarea micro-comutatoarelor din DIP U61

Canal DMA DMA1 = Canal DMA 6 DMA2 = Canal DMA 7

W12: R6: A-B A6: A-B W12: R7: B-C A7: B-C

Nivel de întrerupere

Nivel de întrerupere selectat – 10 W13: Rândul 10

Page 166: 41717466-Achizitii-LabVIEW

166

Fig. 12. Dispunerea jumperelor de configurare pe placa AT-MIO-16

Page 167: 41717466-Achizitii-LabVIEW

167

3.1.1. Selectarea adresei I/O de bază Adresa I/O de bază pentru AT-MIO-16 este determinată de

poziţia micro-comutatoarelor din soclul comutatorului DIP U61. Din fabrică comutatoarele sunt setate pentru o adresă I/O de bază 220 H. Această setare este folosită ca adresă I/O de bază implicită de către pachetul software National Instruments ataşat plăcii AT-MIO-16. Cu setarea iniţială realizată de firma constructoare, spaţiul de adresă I/O de bază folosit de AT-MIO-16 este cuprins între 220 H şi 23F H. Trebuie verificat dacă acest spaţiu nu este deja folosit de alt dispozitiv instalat în calculator. Dacă alt echipament din calculator foloseşte acest spaţiu de adresă I/O de bază, trebuie schimbată adresa I/O de bază a plăcii AT-MIO-16 sau a celuilalt dispozitiv. Dacă se schimbă adresa I/O de bază a AT-MIO-16, trebuie făcută o modificare corespunzătoare în pachetul NI-DAQ ce va fi folosit cu AT-MIO-16.

Fiecare micro-comutator din U61 corespunde uneia din liniile de adresă de la A9 la A5. Dacă se apasă partea marcată OFF se selectează valoarea binară 1 pentru bitul de adresă corespunzător, iar dacă se apasă partea marcată ON se selectează valoarea binară 0 pentru bitul de adresă corespunzător. Fig. 13 prezintă două posibile stări ale micro-comutatoarelor. Porţiunea înnegrită indică partea micro-comutatorului care este apăsată.

Cei mai puţini semnificativi 5 biţi (LSB) ai adresei (A4, A3, A2, A1, A0) sunt decodificaţi de AT-MIO-16 pentru a selecta registrul AT-MIO-16 corespunzător.

1 2 3 4 5 O N

O F F

A9 A8 A7 A6 A5

O N

O F F

Această parte se apasă pentru 0

Această parte se apasă pentru 1

Această parte se apasă pentru 0

Această parte se apasă pentru 1

A. Setarea comutatoarelor pentru o adresă I/O de bază egală cu 000 H

B. Setarea comutatoarelor pentru o adresă I/O de bază egală cu 220 H (setare implicită)

U61

U61

1 2 3 4 5 O N

O F F

A9 A8 A7 A6 A5

Fig. 13. Exemple de stabilire a adresei I/O de bază

Page 168: 41717466-Achizitii-LabVIEW

168

3.1.2. Selectarea canalelor DMA Canalul DMA folosit de AT-MIO-16 este selectat prin

ştrapurile de pe W12. Din fabrică AT-MIO-16 este setată să folosească canalele DMA 6 şi 7 pentru modul DMA-dual. Acestea sunt canalele DMA implicite folosite de utilizatorul AT-MIO-16.

Trebuie verificat dacă aceste canale DMA nu sunt deja folosite de echipamente instalate pe calculator. Dacă un alt dispozitiv foloseşte canalele DMA 6 şi/sau 7, trebuie schimbat canalul DMA folosit fie de AT-MIO-16, fie de celalalt dispozitiv. Canalele DMA recunoscute de hardware-ul AT-MIO-16 sunt 5, 6 şi 7. Trebuie remarcat faptul că placa nu poate folosi decât canale DMA de 16 biţi. Pentru a selecta un canal DMA trebuie instalate două jumpere, câte unul pentru DMA Acknowledge(A) şi DMA Request (R). Când se folosesc două moduri DMA notate DMA1 şi DMA2, cele două coloane din stânga ale W12 sunt folosite de DMA1, iar cele două din dreapta de DMA2. În Fig. 14 este prezentată setarea implicită.

Dacă se doreşte folosirea numai a canalului DMA 6, sau nu se doreşte utilizarea DMA, atunci se pot face setările din Fig. 15.

Fig. 14. Configurarea DMA implicită

Fig. 15. a) Selectarea canalului DMA 6; b) Neutilizare DMA

1 DMA 2

W 12

a) b)

Page 169: 41717466-Achizitii-LabVIEW

169

3.1.3. Selectarea întreruperilor Placa AT-MIO-16H poate fi conectată la oricare din cele 11

linii de întrerupere ale canalului I/O al PC-AT. Pentru a folosi posibilităţile de întrerupere ale AT-MIO-16 trebuie selectată linia de întrerupere şi poziţionat un jumper în poziţia corespunzătoare ce validează această linie de întrerupere. AT-MIO-16 poate împărţi liniile de întrerupere cu alte dispozitive, prin folosirea unui driver three-state (TS) pentru a comanda selectarea liniilor de întrerupere.

Liniile de întrerupere suportate de hardware-ul AT-MIO-16 sunt IRQ3, IRQ4, IRQ5, IRQ6, IRQ7, IRQ9, IRQ10, IRQ11, IRQ12, IRQ14 şi IRQ15. În general, nu se folosesc întreruperile 6 şi 14, care sunt de regulă folosite de către controllerul de floppy disk şi de către controllerul de hard disk.

Jumperul pentru setarea întreruperilor este în soclul W13. Linia de întrerupere implicită este IRQ10 şi ea este selectată prin plasarea unui ştrap pe pinii din şirul 10 (Fig. 16).

Fig. 16. Setarea de fabrică (IRQ10) şi setarea unei alte întreruperi în caz de conflict (IRQ5)

În cazul în care nu sunt folosite întreruperile se utilizează

setarea din Fig. 17.

Fig. 17.

Page 170: 41717466-Achizitii-LabVIEW

170

3.2. Configurarea intrărilor şi ieşirilor analogice AT-MIO-16 este setată din fabrică în configuraţia: intrare

analogică diferenţială (8 canale); ieşire analogică bipolară; domeniu de intrare ±10V; domeniu de ieşire ±10V, cu referinţă internă; două CNA, cod binar bipolar complement faţă de doi; generator de semnal de ceas AT-MIO-16 setat la 10MHz.

În Tabelul 3 este prezentată configurarea intrărilor şi ieşirilor analogice ale plăcii prin intermediul jumperelor.

Tabelul 3. Setarea jumperelor pentru configurarea I/O analogice

Configuraţie Setări jumpere Unipolar 0 ÷ +10 V W1: B-C W4: A-B Bipolar –5 ÷ +5 V W1: B-C W4: B-C

Domeniul de intrare în CAN

Bipolar –10 ÷ +10 V (setare fabrică)

W1: A-B W4: B-C

Diferenţială (DIFF) (setare fabrică)

W6: A-C, B-D, E-F W9: A-B

Asimetrică fără referinţă Nonreferenced single-ended (NRSE)

W6: A-B, C-E, G-H W9: B-C

Tipul intrării analogice

Asimetrică Referenced single-ended (RSE)

W6: A-B, C-D, G-H W9: B-C

Semnal de ceas AT-MIO-16 = = 10 MHz (setare fabrică)

W5: C-D, E-F

Semnal de ceas AT-MIO-16 = = Semnalul de ceas RTSI

W5: A-B, E-F

Selectare ceas Am9513A & RTSI Bus

Semnal de ceas AT-MIO-16 & Semnal de ceas RTSI = 10 MHz

W5: A-B, C-D

Internă (setare fabrică) W3: B-C Referinţa CNA0 Externă W3: A-B

Internă (setare fabrică) W2: B-C Referinţa CNA1 Externă W2: A-B

Unipolară – cod binar natural W8: B-C W10: B-C Polaritate ieşire CNA0 Bipolară – cod complement faţă

de 2 (setare fabrică) W8: A-B W10: B-C

Unipolară – cod binar natural W7: B-C W11: B-C Polaritate ieşire CNA1 Bipolară – cod complement faţă

de 2 (setare fabrică) W7: A-B W11: B-C

Page 171: 41717466-Achizitii-LabVIEW

171

3.2.1. Configurarea intrărilor analogice Placa AT-MIO-16 dispune de 16 canale de intrări analogice

cu amplificare programabilă şi conversie analog-numerică pe 12 biţi. Prin poziţionarea corespunzătoare a jumperelor se pot modifica tipul intrărilor, polaritatea şi domeniul de intrare.

Tipurile intrărilor analogice Placa AT-MIO-16 permite trei tipuri diferite de intrări

analogice: intrare asimetrică (single-ended) fără referinţă (NRSE – NonReferenced Single-Ended input), intrare asimetrică cu referinţă (RSE – Referenced Single-Ended input), şi intrare diferenţială (DIFF – Differential input). Pentru intrările tip single-ended sunt disponibile 16 canale iar pentru intrările diferenţiale 8 canale. Descrierea tipurilor de intrare este prezentată în Tabelul 4, iar modul de poziţionare a jumperelor în Fig. 18.

Tabelul 4. Tipurile intrărilor analogice pentru AT-MIO-16

Tip intrare Descriere

DIFF

Configuraţie diferenţială: conţine 8 intrăridiferenţiale cu intrarea negativă (-) aamplificatorului de instrumentaţie legată la ieşireamultiplexorului corespunzătoare canalelor 8÷15

RSE

Configuraţie cu referinţă tip single-ended - conţine16 intrări tip single-ended cu intrarea negativă (-) aamplificatorului de instrumentaţie legată lareferinţa de masă analogică (referinţă)

NRSE

Configuraţie fără referinţă single-ended - conţine16 intrări tip single-ended cu intrarea negativă aamplificatorului de instrumentaţie legată la AISENSE şi neconectată la referinţă (masa analogică)

1. Intrare diferenţială (DIFF) (opt canale, setare implicită).

Atunci când tipul intrării este DIFF, fiecare semnal de intrare în parte are propria sa referinţă şi este măsurată diferenţa dintre fiecare semnal în parte şi propria sa referinţă. Semnalul şi referinţa sa sunt asignate unui canal de intrare. Cu această configuraţie de intrare, AT-MIO-16 poate monitoriza opt semnale analogice diferite de intrare.

Page 172: 41717466-Achizitii-LabVIEW

172

Fig. 18. Setarea tipului intrărilor analogice

2. Intrare RSE (16 canale). Dacă tipul intrării este RSE atunci

toate semnalele de intrare sunt raportate la un punct de masă comun şi acesta este de asemenea legat la masa intrării analogice pe placa AT-MIO-16. Intrările negative ale amplificatorului diferenţial de intrare sunt legate la masa analogică (circuitul analogic). Această configuraţie este utilă atunci când sunt măsurate sursele flotante de semnal. Cu această configuraţie de intrare, AT-MIO-16 poate monitoriza 16 surse de semnal analogic.

3. Intrare NRSE (16 canale). În cazul intrării tip NRSE toate semnalele de intrare sunt raportate la aceeaşi tensiune de mod comun, dar această tensiune de mod comun este lăsată flotantă faţă de masa analogică a plăcii AT-MIO-16. Această configuraţie este uzuală atunci când măsurăm surse de semnal raportate la masă. Cu această configuraţie de intrare, AT-MIO-16 poate măsura 16 semnale analogice de intrare, diferite.

Polaritatea şi domeniul de intrare AT-MIO-16 oferă două posibilităţi pentru polaritatea intrărilor

analogice: intrare unipolară şi intrare bipolară. Intrarea unipolară presupune un domeniu de intrare între 0 şi Vref, unde Vref este o tensiune de referinţă pozitivă. Intrarea bipolară presupune că acest domeniu este între - Vref şi + Vref. Placa AT-MIO-16 are două domenii de intrare, unul de 10 V şi altul de 20 V.

Page 173: 41717466-Achizitii-LabVIEW

173

Selectarea polarităţii şi a domeniului de intrare se poate realiza în trei moduri posibile, după cum se prezintă în Fig. 19.

ADC Range - Analog to Digital Converter Range = Domeniul CAN U – Unipolar; B - Bipolar

Fig. 19. Setări posibile pentru polaritatea şi domeniul de intrare

Un circuit de extensie pentru semn permite adăugarea a 4 biţi

MSB la ieşirea pe 12 biţi a bufferului FIFO al circuitului de conversie analog-numerică. Circuitul de extensie pentru semn este programabil software şi poate genera cod binar natural sau cod complement faţă de doi. În modul cod binar natural, biţii 15 până la 12 sunt totdeauna zero (biţii 11 până la 0 reprezintă ieşirea CAN, respectiv a bufferului FIFO), ceea ce permite obţinerea unui domeniu între 0 şi 4.096. În modul cod complement faţă de doi, bitul MSB al rezultatului conversiei analog-numerice (adică bitul 11) este inversat şi extins la biţii 15 – 12, furnizând un domeniu între –2.048 şi 2.047.

Selectarea polarităţii sau gamei domeniului semnalului de intrare se face în funcţie de domeniul şi polaritatea semnalului efectiv care se conectează la intrările analogice ale plăcii. Un domeniu de intrare mai larg poate face posibilă conectarea la semnale cu variaţie mai mare dar se sacrifică rezoluţia (precizia). Folosind un domeniu de intrare mai îngust se creşte precizia conversiei analog-numerice în schimb semnalul de intrare poate ieşi din domeniu, rezultând măsurări imprecise.

De exemplu, dacă semnalul de intrare este garantat că nu va fi negativ (va fi deci peste 0 V), atunci pentru măsurarea acestuia este mai potrivită o intrare unipolară. Dacă semnalul poate fi şi negativ,

Page 174: 41717466-Achizitii-LabVIEW

174

atunci citirea va fi eronată şi în acest caz este recomandată intrarea bipolară.

Pentru a putea creşte flexibilitatea utilizării plăcii de achiziţii se pot folosi amplificări programabile software. Placa de achiziţii AT-MIO-16H are amplificări de 1, 2, 4, 8 şi se pretează la semnale de nivel înalt. Placa AT-MIO-16L are amplificări de 1, 10, 100 şi 500 şi este proiectată să măsoare semnale de nivel scăzut. Cu amplificarea setată în mod adecvat, întreaga rezoluţie a CAN poate fi folosită pentru măsurarea cât mai precisă a semnalului de intrare. Tabelul 5 prezintă domeniile generale de intrare, precizia atinsă şi amplificarea obţinută pentru placa AT-MIO-16H.

Tabelul 5. Domeniul efectiv de intrare şi precizia de măsurare în

funcţie de domeniul de intrare şi de amplificare

Domeniul de intrare

Amplificarea Domeniul efectiv de intrare

Precizia

0...10 V 1 2 4 8

0...10 V 0...5 V

0...2,5 V 0...1,25 V

2,44 mV 1,22 mV 610 µ V 305 µ V

-5...+5 V 1 2 4 8

-5...5 V -2,5...+2,5 V -1,25...1,25 V

-0,625...+0,625 V

2,44 mV 1,22 mV 610 µ V 305 µ V

-10...+10 V 1 2 4 8

-10...+10 V -5...+5 V

-2,5...+2,5 V -1,25...1,25 V

4,88 mV 2,44 mV 1,22 mV 610 µ V

3.2.2. Configurarea ieşirilor analogice În mod asemănător cu intrările analogice, se pot selecta

diverse configuraţii pentru ieşirile analogice. Selectarea semnalului de referinţă pentru CNA Fiecare dintre cele două CNA (pe 12 biţi) poate fi conectat de

către AT-MIO-16H la referinţa internă de 10V sau la un semnal de referinţă extern, care trebuie să fie cuprins între -10V...+10V.

Page 175: 41717466-Achizitii-LabVIEW

175

Conectarea la referinţa externă se realizează prin legarea acestui semnal de referinţă la pinul EXTREF de pe conectorul I/O. Semnalul aplicat pe EXTREF trebuie să fie cuprins între -10V şi +10V. Amândouă canalele trebuie să fie configurate în acelaşi mod (fie referinţă internă, fie referinţă externă).

Selectarea semnalului de referinţă externă pentru fiecare canal analogic de ieşire se realizează cu ajutorul jumperelor:

- canal analogic de ieşire 0: W3 A-B - semnalul de referinţă extern conectat la referinţa CNA0;

- canal analogic de ieşire 1: W2 A-B - semnalul de referinţă extern conectat la referinţa CNA1.

Setarea referinţei de 10 V de pe placă (setare implicită) pentru fiecare canal analogic de ieşire se face prin setarea următoarelor jumpere:

- canal analogic de ieşire 0: W3 B-C - conectarea referinţei de pe placă la intrarea de referinţă a CNA0;

- canal analogic de ieşire 1: W2 B-C - conectarea referinţei de pe placă la intrarea de referinţă a CNA1.

Cele două tipuri de configuraţii posibile pentru referinţa CNA sunt prezentate în Fig. 20.

Fig. 20. Setarea jumperelor pentru configurarea referinţei CNA

Selectarea polarităţii ieşirii analogice Fiecare canal de ieşire analogică poate fi configurat fie ca unipolar fie ca bipolar. O configuraţie unipolară are gamă de variaţie între 0 şi Vref . O configuraţie bipolară are o gamă de variaţie între –Vref şi +Vref. Vref este tensiunea de referinţă folosită de CNA şi poate fi fie tensiunea internă de referinţă de +10V a plăcii, fie o referinţă furnizată extern. Nu este nevoie ca ambele canale să fie configurate

Page 176: 41717466-Achizitii-LabVIEW

176

identic din punct de vedere al polarităţii; implicit, ambele canale sunt configurate pentru ieşiri bipolare.

Selectarea ieşirii bipolare (setare implicită). Selectarea configuraţiei bipolare de ieşire pentru fiecare canal analogic de ieşire se face prin setarea următoarelor ştrapuri:

- canal analogic de ieşire 0: W8 A-B - canal analogic de ieşire 1: W7 A-B Selectarea ieşirii unipolare. Selecţia configuraţiei unipolare

de ieşire pentru fiecare canal analogic de ieşire se face prin realizarea următoarelor ştrapuri:

- canal analogic de ieşire 0: W8 B-C - canal analogic de ieşire 1: W7 B-C

Selectarea codificării datelor

Pentru codificarea datelor se poate utiliza fie codul binar natural (normal), fie codul complement faţă de doi. Pentru codul binar natural, valoarea datelor scrise la canalul analogic de ieşire este în domeniul 0 până la 4.095 zecimal (0 - 0FFF H). În cazul utilizării codului complement faţă de doi, valoarea datelor scrise la canalul analogic de ieşire este în domeniul -2.048 până la 2.047 zecimal (F800 H - 07FF H). Selectarea codului utilizat se realizează prin intermediul jumperelor W10 (pentru CNA0) şi W11 (pentru CNA1):

- cod binar natural pentru canalul 0: W10 B-C - cod binar natural pentru canalul 1: W11 B-C - cod complement faţă de 2 pentru canalul 0: W10: A-B - cod complement faţă de 2 pentru canalul 1: W11: A-B

Fig. 21. Setarea ieşirilor – configuraţie unipolară, cod binar natural

Page 177: 41717466-Achizitii-LabVIEW

177

Codul binar natural este folosit de regulă pentru ieşiri unipolare, iar codul complement faţă de doi pentru ieşiri bipolare.

Pentru exemplificare, în Fig. 21 este prezentată configurarea ieşirilor analogice unipolare, cod binar natural.

3.2.3. Circuite de izolare galvanică şi condiţionare semnal

De regulă, semnalele de intrare analogice se aplică pe intrările plăcii AT-MIO-16 prin intermediul unor circuite exterioare care au rolul de izolare galvanică pentru protecţia plăcii şi a calculatorului dar realizează şi anumite funcţiuni de condiţionare de semnal. De asemenea, semnalele de ieşire analogică care provin de la placa de achiziţie sunt furnizate către proces prin intermediul unor circuite exterioare care asigură izolarea galvanică precum şi conversii de tip tensiune-curent. Astfel de circuite pot fi de tip SCXI sau circuite modulare din seria 5B, cu cost redus şi de înaltă performanţă.

Fig. 22. Schema de conectare între sistemul de achiziţie şi proces prin placa cu module de izolare galvanică şi terminale de cuplare

Page 178: 41717466-Achizitii-LabVIEW

178

Circuitele de condiţionare de semnal modulare din seria 5B, proiectate pentru aplicaţii industriale, încorporează izolatoare galvanice şi au dimensiuni şi dispuneri ale terminalelor identice. Modulele de intrare izolate furnizează ieşiri (către placa de achiziţie AT-MIO-16 din calculator) între 0...+5V sau între -5...+5V, în funcţie de tipul constructiv. Modulele de ieşire convertesc tensiuni unipolare între 0...+5V sau bipolare între -5V...+5V în curenţi pentru procesul comandat între 4...20 mA sau 0...20 mA, utilizaţi pentru comanda procesului condus. Laboratorul dispune de două module de intrări cu izolare galvanică din seria 5B31-02, şi 5B41-02. Modulele din gama 5B31 acceptă la intrare semnale de tensiune de ordinul volţilor şi oferă la ieşire tensiune unipolară sau bipolară. Pentru 5B31-02 domeniile de intrare şi de ieşire sunt identice, adică -5V...+5V. Modulele din gama 5B41 acceptă la intrare semnale de tensiune de bandă largă de ordinul volţilor şi oferă la ieşire tensiune unipolară sau bipolară. Pentru 5B41-02 domeniile de intrare şi de ieşire sunt identice, adică -5V...+5V. În Fig. 22 este prezentată schema de conectare între sistemul de achiziţie (PC – AT-MIO-16) şi proces prin intermediul unei plăci externe care conţine module de izolare galvanică şi terminale de cuplare la proces.

3.2.4. Selectarea ceasului prin magistrala RTSI Atunci când mai multe plăci de achiziţie AT sunt conectate

via magistrala RTSI, este posibil să se dorească ca toate plăcile să folosească acelaşi ceas de 10MHz. Acest aranjament este folositor pentru aplicaţii care cer sincronizarea plăcilor. Fiecare placă de achiziţie AT cu interfaţă RTSI are implicit un oscilator de 10MHz. În acest fel, o placă poate conduce prin intermediul semnalului de ceas din magistrala proprie RTSI, iar celelalte plăci pot recepţiona acest semnal sau se pot deconecta şi utilizează propriul ceas. Pentru configurarea semnalului de ceas se utilizează jumperul W5, care permite setarea în regim de ceas local, ceas slave sau ceas master (Tabelul 6). Semnalul de ceas, furnizat local sau de magistrala RTSI este divizat cu 10 şi este utilizat de către circuitul de numărare Am9513A.

Page 179: 41717466-Achizitii-LabVIEW

179

Tabelul 6. Selectarea semnalului de ceas

Tip semnal de ceas

Descriere Setare jumper

Ceas local Se foloseşte oscilatorul local de pe placă ca şi generator de semnal de ceas (setare implicită)

Ceas slave Se primeşte semnalul de ceas de pe magistrala RTSI

Ceas master Furnizează semnalul de ceas pentru magistrala RTSI şi semnalul de ceas al plăcii prin folosirea oscilatorului local de pe placă

RTSI BRD

BRD

NC NC

10 MHz

W5

RTSI BRD

BRD

NC NC 10 MHz

W5

RTSI BRD BRD

NC NC

10 MHz

W5

Page 180: 41717466-Achizitii-LabVIEW

180

4. Conexiunile plăcii AT-MIO-16

Asignarea pinilor pentru conectorul I/O (intrare/ieşire) al plăcii AT-MIO-16 este prezentată în Fig. 23. Conectorul I/O este amplasat pe placă (a se vedea Fig. 12) şi este accesibil la partea din spate a calculatorului după instalarea corectă a plăcii în acesta.

Semnalele care se conectează la placă prin intermediul conectorului I/O pot fi clasificate în semnale de intrare analogice, semnale de ieşire analogice, semnale numerice I/O, surse de alimentare pe partea numerică (digital power connections) şi semnale de sincronizare (timing signals).

4.1. Conexiuni pentru intrări analogice Pinii 1 până la 19 de pe conectorul I/O sunt pinii de intrări

analogice. Pinii 1 şi 2 sunt pini pentru masă notaţi AIGND (masa semnalului analogic de intrare – analog input ground). Semnalele de intrare analogică conectate la pinii AIGND sunt legate la masa analogică a plăcii AT-MIO-16. Pinul 19 este numit AISENSE, care în modul single-ended este conectat intern (pe placă) la intrarea negativă a amplificatorului de instrumentaţie al AT-MIO-16, iar în modul DIFF este conectat la masa de referinţă a amplificatorului de instrumentaţie.

Pinii de la 3 la 18 sunt notaţi ACH 15...0 şi sunt legaţi la cele 16 canale de intrări analogice ale plăcii AT-MIO-16. În modul single-ended, semnalele conectate la ACH 15...0 sunt direcţionate spre intrarea pozitivă a amplificatorului de instrumentaţie al AT-MIO-16. În modul diferenţial DIFF, semnalele conectate la ACH 7…0 sunt direcţionate spre intrarea pozitivă a amplificatorului de instrumentaţie, iar semnalele conectate la ACH 15...8 spre intrarea negativă a amplificatorului de instrumentaţie.

Domeniile de intrare şi valorile maxime care pot fi aplicate la intrările ACH 15...0 sunt următoarele: - domeniul diferenţial de intrare ±10 V; - domeniul de intrare în mod comun ±7V în raport cu AIGND; - domeniul de intrare ±12 V în raport cu AIGND; - valori maxime ale tensiunii de intrare:

- ±20 V atunci când placa AT-MIO-16 nu este alimentată; - ±35 V atunci când placa este alimentată.

Page 181: 41717466-Achizitii-LabVIEW

181

Depăşirea domeniilor de intrare pentru modul diferenţial sau modul comun are ca rezultat distorsionarea semnalelor de intrare. Depăşirea valorilor tensiunii maxime de intrare poate conduce la defectarea plăcii AT-MIO-16 şi a calculatorului în care este instalată.

D A C 0 O U T

A C H 1 4 A C H 6 A C H 7 A C H 1 5

E X T R E F

A D IO 0 B D IO 0

D IG G N D

A D IO 1 B D IO 1

5 6 A C H 1 A C H 9

1 2 A IG N D A IG N D

3 4 A C H 0 A C H 8

7 8 A C H 2 A C H 1 0

A C H 4 A C H 1 2

9 A C H 3 A C H 1 1

A C H 5 A C H 1 3

+ 5 V

B D IO 2 A D IO 2A D IO 3 B D IO 3

S O U R C E 2

G A T E 5

O U T 2

F O U T

+ 5 V S C A N C L K

E X T C O N V *

S T A R T T R IG *

G A T E 1

E X T S T R O B E *

S T O P T R IG

S O U R C E 1

O U T 1

G A T E 2

S O U R C E 5

O U T 5

D IG G N D

A O G N D

D A C 1 O U T

A IS E N S E

1 1

1 3

1 5

1 7

1 9

2 1

2 3

2 5

2 7

2 9

3 1

3 3

3 5

3 7

3 9

4 1

4 3

4 5

4 7

4 9

1 0

1 2

1 4

1 6

1 8

2 0

2 2

2 4

2 6

2 8

3 0

3 2

3 4

3 6

3 8

4 0

4 2

4 4

4 6

4 8

5 0 Fig. 23. Asignarea pinilor la conectorul I/O al plăcii AT-MIO-16

Page 182: 41717466-Achizitii-LabVIEW

182

Fig. 24. Schema bloc a amplificatorului de instrumentaţie

Modul de conectare a semnalelor de intrare analogice la placa

AT-MIO-16 depinde de configuraţia circuitului de intrări analogice al plăcii şi de tipul sursei semnalului de intrare. În funcţie de configuraţia circuitului de intrări analogice, amplificatorul de instrumentaţie este utilizat în mai multe moduri. Schema bloc a amplificatorului de instrumentaţie este prezentată în Fig. 24 (gain = amplificare).

Amplificatorul de instrumentaţie de pe placa AT-MIO-16 permite obţinerea unei amplificări mari, este caracterizat de o rejecţie pe mod comun foarte bună şi are o impedanţă de intrare foarte mare. Semnalele de intrare analogică sunt cuplate la intrările pozitivă şi negativă ale amplificatorului AI prin intermediul circuitelor de multiplexare ale plăcii. Aşa cum se observă şi din Fig. 24, amplificatorul de instrumentaţie converteşte cele două semnale de intrare −+

inin V,V în diferenţa dintre ele multiplicată cu amplificarea (care este programabilă). Ieşirea amplificatorului mV este măsurată faţă de masa plăcii. Convertorul analogic-numeric de pe placă foloseşte această tensiune atunci când realizează conversiile analog-numerice.

Pentru a realiza o conectare corectă a plăcii la sursa care furnizează semnalul analogic de intrare, o mare importanţă o constituie identificarea tipului acestei surse de semnal şi apoi alegerea corespunzătoare a configuraţiei de intrare analogică a plăcii. Dacă, de exemplu, avem o sursă flotantă de semnal, trebuie utilizată o configuraţie de intrare de tip RSE (referenced single-ended), iar dacă avem o sursă raportată la masă, este recomandată utilizarea configuraţiei NRSE (non-referenced single-ended).

Page 183: 41717466-Achizitii-LabVIEW

183

4.2. Tipuri de surse de semnal

4.2.1. Surse de semnal flotante (floating signal source) O sursă de semnal flotantă este o sursă care nu este conectată

la sistemul de împământare sau de masă al clădirii (sursa flotantă poate avea însă un punct de masă izolat).

Sursele flotante sunt fie surse de tip autonom, care nu sunt raportate la masă sau pământ, fie surse cu izolare care sunt caracterizate de existenţa unei izolări galvanice între punctele de măsurare şi reţea (deci izolate faţă de împământarea sau masa reţelei).

Exemple reprezentative de surse autonome sunt traductoarele generatoare (care nu sunt împământate): termocupluri, traductoare electrochimice, piezoelectrice etc. şi sursele cu alimentare autonomă (de tip baterie, nealimentate din reţea).

Exemple de surse cu izolare tipice sunt transformatoarele de tensiune, generatoarele de semnal cu alimentare de la reţea prin transformator şi sursă de alimentare etc.

Masa de referinţă a unui semnal flotant trebuie să fie legată la intrarea analogică de masă a plăcii (AIGND) pentru a stabili o referinţă pe placă pentru semnal. În caz contrar, semnalul de intrare măsurat apare ca flotant (variază).

4.2.2. Surse de semnal raportate la masă (ground-referenced signal source) O sursă de semnal raportată la masă (cu referinţa la masă) este

o sursă conectată într-un fel la sistemul de masă sau împământare al clădirii şi este prin urmare conectată deja la un punct comun de masă în raport cu placa AT-MIO-16, presupunând că sistemul de calcul este alimentat de la acelaşi sistem de alimentare.

Sursele de semnal raportate la masă pot fi clasificate la rândul lor în surse diferenţiale şi surse asimetrice.

Sursele diferenţiale furnizează un semnal de tip tensiune prin diferenţa tensiunilor de ieşire ale unor surse echivalente, care, raportate la masă sau împământare, controlează potenţialele punctelor de măsurare. Exemple tipice sunt punţile tensometrice şi schemele de măsurare a curentului unor consumatori alimentaţi în c.c.

Sursele asimetrice (single-ended) au unul din punctele de măsurare conectat la masă sau la împământare. Surse asimetrice sunt de exemplu consumatorii industriali pentru care se măsoară tensiunea

Page 184: 41717466-Achizitii-LabVIEW

184

la borne şi termocuplurile cu împământare (prin obiectul a cărui temperatură se măsoară).

Prin urmare, în categoria semnalelor provenite de la sursele raportate la masă intră ieşirile neizolate ale instrumentelor şi dispozitivelor care sunt alimentate de la reţeaua clădirii, aceeaşi cu cea care alimentează sistemul calculator-placă.

Diferenţa de potenţial între punctele de masă a două instrumente conectate la aceeaşi reţea este tipic între 1mV şi 100mV, dar poate fi mult mai mare dacă circuitele de distribuire a puterii nu sunt realizate corect. Dacă semnalul provenit de la sursa raportată la masă este măsurat incorect, această diferenţă între punctele de masă apare ca o eroare de măsurare. Pentru a evita apariţia erorilor, trebuie eliminate diferenţele de potenţial de masă, prin respectarea instrucţiunilor de conectare descrise în paragrafele următoare

4.3. Configuraţii de intrare analogică

Placa AT-MIO-16 poate fi configurată pentru unul din cele trei tipuri de intrare: NRSE, RSE sau DIFF. În paragrafele următoare este discutat modul de realizare a măsurătorilor de tip single-ended şi diferenţial şi sunt făcute consideraţii asupra măsurării surselor de semnal flotante şi raportate la masă. Tabelul 7 cuprinde recomandările pentru alegerea configuraţiilor de intrare în funcţie de tipul sursei de semnal.

Tabelul 7. Configuraţii de intrare recomandate

Tipul semnalului (sursei de semnal)

Configuraţie de intrare recomandată

Raportat la masă (ieşiri neizolate, instrumente puse în aceeaşi priză)

DIFF NRSE

Flotant (baterii, termocupluri, ieşiri izolate)

DIFF cu punte de rezistoare RSE

4.3.1. Consideraţii asupra conexiunii diferenţiale Conexiunea diferenţială este aceea în care fiecare semnal

analogic de intrare în AT-MIO-16 are propriul semnal de referinţă sau propria cale de întoarcere a semnalului. Această conexiune este disponibilă atunci când placa AT-MIO-16 este configurată în modul

Page 185: 41717466-Achizitii-LabVIEW

185

DIFF. Fiecare semnal de intrare este legat la intrarea pozitivă a amplificatorului de instrumentaţie de pe placă, iar referinţa (returul) fiecărui semnal de intrare este legată la intrarea negativă a amplificatorului de instrumentaţie. Semnalele de intrare sunt legate la amplificatorul de instrumentaţie prin intermediul multiplexorului de pe placă. Fiecare semnal de intrare foloseşte două din intrările multiplexorului - una pentru semnal şi alta pentru referinţa semnalului. Prin urmare, numai opt canale analogice de intrare vor fi disponibile atunci când utilizăm configuraţia DIFF.

Se recomandă utilizarea configuraţiei de intrare DIFF atunci când:

• semnalele de intrare au nivel scăzut (mai mic de 1V); • cablurile de conectare la AT-MIO-16 sunt mai mari de 5

m; • oricare din semnalele de intrare necesită puncte de referinţă

de masă separate; • cablurile prin care se transmite semnalul traversează medii

cu zgomote. Conexiunile diferenţiale de semnal permit creşterea rejecţiei

semnalului pe mod comun, rejecţia zgomotului şi permit variaţia semnalelor de intrare între limitele de mod comun ale intrării amplificatorului de instrumentaţie.

Conexiunea diferenţială pentru surse raportate la masă În Fig. 25 este prezentat modul de conectare al unei surse de

semnal raportate la masă la placa AT-MIO-16 configurată pentru tip de intrare DIFF. În cazul utilizării acestei conexiuni, amplificatorul de instrumentaţie rejectează atât zgomotul de mod comun cât şi diferenţa de potenţial între punctul de masă al sursei de semnal şi punctul de masă al plăcii AT-MIO-16 (diferenţă notată Vcm în Fig. 25).

Conexiunea diferenţială pentru surse flotante

În Fig. 26 este prezentat modul de conectare al unei surse flotante la placa AT-MIO-16 configurată pentru intrare DIFF. Rezistoarele de Ωk100 creează o cale de întoarcere spre masă pentru curenţii de bias ai amplificatorului de instrumentaţie. Modul de configurare (setare prin jumpere) a plăcii pentru tipul DIFF este descris în paragraful 3.2.

Page 186: 41717466-Achizitii-LabVIEW

186

Fig. 25. Conexiunea diferenţială pentru surse raportate la masă

Fig. 26. Conexiunea diferenţială pentru surse flotante

Page 187: 41717466-Achizitii-LabVIEW

187

4.3.2. Consideraţii asupra conexiunilor single-ended

Conexiunile single-ended sunt acelea în care toate semnalele analogice de intrare pe placă sunt referite la o masă comună. Semnalele de intrare sunt legate la intrarea pozitivă a AI, iar punctele lor de masă comune sunt legate la intrarea negativă a AI.

Atunci când AT-MIO-16 este configurată pentru intrare single-ended (NRSE sau RSE) sunt disponibile 16 canale analogice.

Se recomandă utilizarea conexiunilor single-ended atunci când:

• semnalele de intrare au nivel mare (mai mare de 1V); • cablurile de conectare la AT-MIO-16 sunt mai mici de 5

m; • toate semnalele de intrare au acelaşi semnal de referinţă. Dacă oricare din precedentele criterii nu poate fi îndeplinit,

este recomandată folosirea configuraţiei DIFF. Placa AT-MIO-16 poate fi configurată cu ajutorul jumperelor

(paragraful 3.2) pentru 2 tipuri diferite de conexiuni single-ended: configuraţie RSE şi configuraţie NRSE. Configuraţia RSE este folosită pentru surse de semnal flotante; în acest caz AT-MIO-16 furnizează un punct de masă de referinţă pentru semnalul extern. Configuraţia NRSE este folosită pentru surse de semnal raportate la masă (grounded-referenced signal sources); în acest caz, semnalul extern are propriul punct de masă de referinţă.

Conexiunea single-ended pentru surse de semnal flotante (configuraţie RSE) În Fig. 27 este reprezentat modul de conectare al unei surse

flotante la placa AT-MIO-16 configurată RSE. Semnalul de intrare este aplicat la bornele AI, pinul AIGND fiind legat la AISENSE prin configurarea RSE (prin setarea corespunzătoare a jumperelor).

Conexiunea single-ended pentru surse raportate la masă (configuraţie NRSE) Dacă se măsoară un semnal provenit de la o sursă raportată la

masă cu o configuraţie de tip single-ended, atunci trebuie setată placa pentru tipul de intrare NRSE. Pentru aceasta, se conectează semnalul la intrarea pozitivă a AI şi masa locală a sursei de semnal la intrarea negativă a AI prin pinul AISENSE al conectorului I/O. Orice diferenţă

Page 188: 41717466-Achizitii-LabVIEW

188

de potenţial dintre masa plăcii şi masa semnalului apare ca un semnal de mod comun la ambele borne ale AI, care va rejecta această diferenţă. Dacă, în mod greşit, se conectează o sursă de semnal raportată la masă la placa configurată RSE, atunci diferenţa de potenţial între punctele de masă va apare ca o eroare de măsurare.

În Fig. 28 este prezentat modul de conectare al unei surse raportate la masă la placa AT-MIO-16 configurată NRSE.

Fig. 27. Conexiunea single-ended (RSE) pentru surse flotante

Fig. 28. Conexiunea single-ended (NRSE) pentru surse de semnal

raportate la masă

Page 189: 41717466-Achizitii-LabVIEW

189

4.3.3. Consideraţii privind rejecţia pe mod comun În Fig. 25 şi 27 sunt prezentate conexiunile plăcii AT-MIO-16 la surse de semnal care sunt deja raportate la un punct de masă. În aceste situaţii, amplificatorul de instrumentaţie poate rejecta orice tensiune care apare datorită diferenţelor de potenţial între punctul de masă al plăcii şi punctul de masă al sursei de semnal. Suplimentar, în cazul conexiunilor diferenţiale, amplificatorul de instrumentaţie poate rejecta şi zgomotul de mod comun datorat colectării prin cablurile de legătură dintre sursa de semnal şi placă. Domeniul de intrare pe mod comun al amplificatorului de instrumentaţie de pe placă este definit ca fiind amplitudinea celui mai mare semnal pe mod comun care poate fi rejectat. Domeniul de intrare pe mod comun depinde de dimensiunea tensiunii diferenţiale de intrare şi de amplificarea setată pentru AI, conform formulei:

⋅−±=

212max

GainVVV diff

cm ,

unde −+ −= inindiff VVV şi Gain este amplificarea. Valoarea curentă a tensiunii de mod comun se poate măsura în raport cu masa plăcii şi poate fi calculată cu formula:

2

−+ −= inin

cmVV

V unde +

inV este semnalul de la intrarea pozitivă a AI, iar −inV este

semnalul de la intrarea negativă a AI.

4.4. Conexiuni pentru ieşiri analogice

Pinii 20, 21, 22 şi 23 ai conectorului I/O (Fig. 23) sunt pini rezervaţi pentru ieşirile analogice. Dintre aceştia, pinii 20 şi 21 sunt pinii de semnal DAC0OUT şi DAC1OUT. La pinul DAC0OUT se conectează tensiunea de ieşire a semnalului pentru canalul de ieşire analogică 0, iar la pinul DAC1OUT tensiunea de ieşire corespunzătoare canalului de ieşire analogică 1. La pinul 22, numit EXTREF, se poate conecta intrarea de referinţă externă pentru ambele

Page 190: 41717466-Achizitii-LabVIEW

190

canale de ieşiri analogice. Fiecare canal de ieşire analogică trebuie configurat individual pentru selectarea referinţei externe, caz în care semnalul aplicat la intrarea de referinţă externă EXTREF va fi folosit de acest canal.

Instrucţiunile de configurare a ieşirilor analogice (prin setarea jumperelor) au fost prezentate în paragraful 3.2.

Domeniile şi valorile maxime care se pot aplica la intrarea EXTREF sunt următoarele:

- domeniul valorilor de intrare este de ±10 V în raport cu AOGND;

- valorile maxime absolute permise sunt de ±25 V în raport cu AO GND.

Pinul 23, AOGND, este punctul de referinţă de masă pentru ambele canale de ieşiri analogice şi pentru semnalul de referinţă externă. Fig. 29 prezintă modul de conectare a ieşirilor analogice şi a referinţei externe la placa AT-MIO-16. Dacă nici unul din canalele de ieşire nu este configurat pentru utilizarea semnalului de referinţă externă, la pinul EXTREF nu se realizează nici-o conexiune.

Semnalul de referinţă externă poate fi de c.c. sau de c.a. Acest semnal de referinţă este utilizat de CNA pentru generarea tensiunii de ieşire.

Fig. 29. Conexiunile pentru ieşiri analogice

Page 191: 41717466-Achizitii-LabVIEW

191

4.5. Conexiuni pentru intrări/ieşiri numerice Pinii de la 24 până la 33 ai conectorului I/O (Fig. 23) sunt rezervaţi pentru intrări/ieşiri numerice. Pinii 25, 27, 29 şi 31 sunt conectaţi la liniile numerice ADIO 3…0 ale portului numeric A, iar pinii 26, 28, 30 şi 32 la liniile numerice BDIO 3…0 ale portului B. Pinii 24 şi 33, numiţi DIGGND, reprezintă pini de masă pentru ambele porturi numerice I/O. Porturile A şi B pot fi programate individual ca intrări sau ieşiri numerice. Câteva din specificaţiile care trebuie respectate de porturile I/O sunt următoarele:

• Tensiunea de intrare maximă: 6 V în raport cu DIGGND; • Specificaţiile intrărilor numerice (referite la DIGGND):

- Tensiunea de intrare pentru 1 logic: 2 V minim - Tensiunea de intrare pentru 0 logic: 0.8 V maxim

• Specificaţiile ieşirilor numerice: - Tensiunea de ieşire pentru 1 logic: 2.4 V minim - Tensiunea de ieşire pentru 0 logic: 0.5 V maxim

Fiecare linie numerică de ieşire poate suporta până la 11 sarcini TTL standard.

În Fig. 30 sunt prezentate conexiunile numerice I/O pentru trei aplicaţii tipice.

Fig. 30. Conexiuni I/O numerice

Page 192: 41717466-Achizitii-LabVIEW

192

În schema de conectare din Fig. 30, portul A este configurat ca port de ieşire, iar B ca port de intrare. Aplicaţii tipice de intrări numerice sunt: recepţionarea de semnale TTL sau detectarea stării unor dispozitive externe cum ar fi starea contactelor unui releu. Printre aplicaţiile de ieşiri numerice se pot enumera trimiterea de semnale TTL sau comanda unor dispozitive externe (ex. LED-ul din Fig. 30). 4.6. Conexiuni de alimentare

Pinii 34 şi 35 ai conectorului I/O sunt conectaţi la sursa de alimentare de +5 V (0.5 A la +5V ±10%) a calculatorului PC-AT. Aceşti pini sunt raportaţi la masa DIGGND şi pot fi utilizaţi pentru alimentarea unor circuite numerice externe.

Observaţie importantă: Pinii de alimentare de +5 V nu trebuie conectaţi direct la masa analogică sau digitală sau la oricare alta sursă de alimentare a plăcii AT-MIO-16 sau a oricărui alt dispozitiv (pentru a evita defectarea plăcii şi/sau a calculatorului).

4.7. Conexiuni pentru semnale de tact şi de sincronizare

Pinii 36 până la 50 ai conectorului I/O al plăcii sunt folosiţi pentru semnale de tact sau de sincronizare. Pinii de la 36 la 40 sunt semnale de tact sau de sincronizare destinate achiziţiei de date. Pinii de la 41 la 50 sunt semnale de tact sau de sincronizare cu scop general destinate numărătoarelor de pe placa de achiziţie.

4.7.1. Conexiuni pentru semnale de tact şi sincronizare destinate achiziţiei de date

Semnalele destinate achiziţiei de date sunt SCANCLK,

EXTSTROBE*, STARTTRIG*, STOPTRIG, EXTCONV (pinii 36-40).

Semnalul SCANCLK este aşa-numitul semnal de tact de scanare (scan clock). SCANCLK este un semnal TTL de ieşire care generează un front coborâtor la începerea unei conversii analog-numerice. În mod normal, semnalul SCANCLK este pe nivel înalt şi trece pe nivel jos pentru aproximativ 1 µ sec, după începerea conversiei analog-numerice. Frontul crescător al semnalului indică faptul că semnalul de intrare a fost achiziţionat.

Page 193: 41717466-Achizitii-LabVIEW

193

Semnalul de ieşire EXTSROBE* este tot un semnal TTL. La accesarea registrului External Strobe Register este generat un impuls de lăţime 100 până la 500 nsec.

Semnalul EXTCONV* este un semnal de intrare TTL conectat la pinul cu acelaşi nume al conectorului I/O şi este utilizat pentru triggerarea externă a conversiilor analog-numerice. Aplicarea unui impuls pe intrarea EXTCONV* (Fig. 31) iniţiază o conversie analog-numerică (frontul crescător al impulsului aplicat iniţiază conversia). Lăţimea minimă admisă a impulsului este de 50 nsec, iar semnalul trebuie să stea pe nivel înalt minim 50 nsec înainte de frontul coborâtor.

Fig. 31. Semnalul EXTCONV* Un semnal de trigger extern (TTL) aplicat pe pinul

STARTTRIG* poate iniţia o secvenţă de achiziţii analog-numerice (dacă semnalul EXTCONV* generează conversia, STARTTRIG* nu influenţează tactul achiziţiei). Operaţiile de achiziţie sunt iniţiate prin aplicarea unui front coborâtor. Lăţimea minimă a impulsului trebuie să fie de 50 nsec. Prima conversie analog-numerică din secvenţă începe pe frontul coborâtor al impulsului, în maximum un interval de scanare (perioadă de eşantionare).

Fig. 32. Semnalul STARTTRIG*

tw

tw tw – minimum 50 nsec

Conversia analog-numerică începe în maximum 250 nsec din acest punct

UL

UH

tw

tw tw – minimum 50 nsec

Prima conversie analog-numerică începe în maximum un interval de scanare din acest punct

UL

UH

Page 194: 41717466-Achizitii-LabVIEW

194

Pinul STOPTRIG este utilizat pentru operaţiile de achiziţie de tip pretrigger ale plăcii AT-MIO-16. Semnalul aplicat pe STOPTRIG este un semnal de trigger hardware de tip TTL (Fig. 33). În modul pretrigger, datele sunt achiziţionate, dar numărarea eşantioanelor achiziţionate începe doar la aplicarea unui front crescător pe STOPTRIG. Achiziţia de date este completă atunci când numărătorul de eşantioane este decrementat până la zero. Se observă că în acest mod de achiziţie se achiziţionează date atât înainte cât şi după primirea semnalului de trigger hardware.

Fig. 33. Semnalul STOPTRIG

4.7.2. Conexiuni pentru semnale de tact şi sincronizare de uz general Semnalele de tact şi sincronizare de uz general (pinii 41-50)

sunt GATE, SOURCE şi OUT pentru numărătoarele 1, 2 şi 5 ale circuitului Am9513A şi semnalul FOUT generat de circuitul Am9513A. Numărătoarele 1, 2, 5 ale circuitului Am9513A pot fi folosite în aplicaţii cu scop general, cum ar fi generarea de semnale dreptunghiulare, numărarea evenimentelor, impulsuri modulate în durată şi măsurarea frecvenţei. Pentru aceste aplicaţii semnalele SOURCE şi GATE sunt aplicate direct numărătoarelor prin conectorul I/O al plăcii şi astfel numărătoarele pot fi programate pentru diferite operaţii.

Circuitul integrat de numărare/ sincronizare Am9513A are 5 numărătoare/temporizatoare individuale pe 16 biţi şi generator de frecvenţă programabilă pe 4 biţi.

Schema bloc a circuitului pentru generarea semnalelor de tact de uz general a fost prezentată în Fig. 8 (paragraful 2.4).

tw

tw

tw – minimum 50 nsec

Numărarea primului eşantion începe în maximum un interval de scanare din acest punct

UL

UH

Page 195: 41717466-Achizitii-LabVIEW

195

ANEXA 2

Amplificatorul de precizie pentru termocuplul de tip J Amplificatorul de precizie este destinat amplificării semnalului de nivel mic (milivolţi) provenit de la termocuplul fier-constantan de tip J (0 – 761 oC). Ieşirea amplificatorului este un semnal unificat de tensiune în gama 0 – 10 V c.c. Amplificatorul este realizat cu trei circuite integrate speciale: - βMTX 121 – preamplificator de precizie la intrarea căruia se conectează termocuplul; - βM 108 – amplificator operaţional de precizie care împreună cu primul circuit formează un amplificator neinversor cu factor de amplificare de circa 106; - un al doilea circuit βM 108 montat în configuraţie de amplificator neinversor care asigură transformarea finală în semnal unificat 0 – 10 V c.c. Amplificatorul de precizie are un factor de amplificare de aproximativ 107. Schema electronică a amplificatorului este prezentată în Fig. 1. Amplificatorul are şi rolul de circuit de condiţionare a semnalului. Astfel, compensarea influenţei temperaturii mediului ambiant (a temperaturii joncţiunii reci) asupra preciziei de măsurare se face prin intermediul tensiunii stabilizate furnizate de o diodă Zener care variază în funcţie de temperatură. Această tensiune se aplică la intrarea inversoare a primului circuit amplificator. La creşterea temperaturii mediului ambiant, tensiunea la bornele diodei Zener scade, deci scade tensiunea de pe intrarea inversoare, mărindu-se astfel tensiunea de ieşire. În situaţia considerată tensiunea furnizată de către termocuplu este mai mică deoarece tensiunea termo-electromotoare este direct proporţională cu diferenţa de temperatură dintre cele două joncţiuni, diferenţă care scade datorită creşterii temperaturii joncţiunii reci şi prin urmare scade şi tensiunea electromotoare furnizată de termocuplu. Datorită acestui fenomen, tensiunea de la ieşirea amplificatorului de precizie ar fi mai mică nu datorită modificării temperaturii punctului de măsurare ci datorită creşterii temperaturii joncţiunii reci. Această abatere este compensată

Page 196: 41717466-Achizitii-LabVIEW

196

prin urmare prin aplicarea pe intrarea inversoare a primului circuit amplificator a tensiunii de la bornele diodei Zener.

Fig. 1. Schema electronică a amplificatorului de precizie

Page 197: 41717466-Achizitii-LabVIEW

197

Caracteristica statică temperatură – tensiune a ansamblului termocuplu de tip J – amplificator de precizie a fost ridicată cu ajutorul unui voltmetru şi a unui termometru, fiind obţinute datele din tabelul 1. Domeniul de temperatură luat în considerare pentru efectuarea măsurătorilor a fost 20 – 140 oC.

Pe baza acestor date a fost obţinută reprezentarea grafică din Fig. 2, din care se observă caracterul aproape liniar al ansamblului termocuplu – amplificator de precizie pe domeniul de funcţionare considerat.

Tabelul 1.

Temperatură

[oC]

Tensiune [V]

Temperatură [oC]

Tensiune [V]

20 2.00 85 6.05

25 2.14 90 6.35

30 2.28 95 6.75

35 2.61 100 7.10

40 2.97 105 7.35

45 3.31 110 7.75

50 3.63 115 8.15

55 3.95 120 8.48

60 4.32 125 8.78

65 4.65 130 9.25

70 5.01 135 9.62

75 5.33 140 10.00

80 5.70

Page 198: 41717466-Achizitii-LabVIEW

198

01234567891011

0 20 40 60 80 100 120 140 160Temperatură [grade Celsius]

Tens

iune

[V]

Fig. 2. Caracteristica statică temperatură – tensiune a ansamblului

termocuplu – amplificator de precizie

Page 199: 41717466-Achizitii-LabVIEW

199

BIBLIOGRAFIE [1] Asch, G., Acquisition de données du capteur à l’ordinateur,

Dunod, Paris, 1999. [2] Asch, G., Les capteurs en instrumentation industrielle, Dunod,

Paris, 1999. [3] Bentley, J.P., Principles of Measurements Systems, Longman

Scientific & Technical, United Kingdom, 1988. [4] Cottet, F., Ciobanu, O., Bazele Programării în LabVIEW,

MATRIX ROM, Bucureşti, 1998. [5] Golovanov, C., Albu, M. (coordonatori), Probleme moderne de

măsurare în electroenergetică, Ed. Tehnică, Bucureşti, 2001. [6] Iancu, E., Transmisia Datelor, Ed. Reduta, Craiova, 1998. [7] Ionete, C., Selişteanu, D., Echipamente de Automatizare şi

Protecţie, Reprografia Universităţii din Craiova, 2000. [8] Jurca, T., Stoiciu, D., Instrumentaţie de măsurare. Structuri şi

circuite, Ed. de Vest, Timişoara, 1996. [9] Marin, C., Popescu, D., Petre, E., Selişteanu, D., Ionete, C.,

Sisteme de Reglare Automată. Lucrări Practice I, Ed. Sitech, Craiova, 1997.

[10] Marin, C., Petre, E., Popescu, D., Ionete, C., Selişteanu, D., Sisteme de Reglare Automată. Lucrări Practice II, Ed. Sitech, Craiova, 1998.

[11] Marin, C., Popescu, D., Petre, E., Ionete, C., Selişteanu, D., Teoria Sistemelor, Ed. Universitaria, Craiova, 2001.

[12] McGhee, J., Kulesza, W., Henderson, I.A., Korczynski, M.J., Measurement Data Handling. Theoretical Technique, Technical University of Lodz, ACGM. Lodart, Lodz, Polonia, 2001.

[13] McGhee, J., Kulesza, W., Henderson, I.A., Korczynski, M.J., Measurement Data Handling. Hardware Technique, Technical University of Lodz, ACGM. Lodart, Lodz, Polonia, 2001.

[14] Nachtingal, Chester L. (ed.), Instrumentation and Control. Fundamentals and Applications, John Wiley & Sons, Inc., New York, 1990.

Page 200: 41717466-Achizitii-LabVIEW

200

[15] Nussbaumer, H., Informatique industrielle II, Presses Polytechniques Romandes, Lausanne, 1986.

[16] Oppenheim, A.V., Schafer, R.W., Discrete-Time Signal Processing, Second Edition, Prentice Hall International, 1999.

[17] Porat, B., A Course in Digital Signal Processings, John Wiley & Sons, Inc., New York, 1997.

[18] Selişteanu, D., Ionete, C., Petre, E., Popescu, D., Şendrescu, D., Ghid de programare în LabVIEW. Aplicaţii pentru prelucrarea semnalelor, Tipografia Universităţii din Craiova, 2003.

[19] Tompkins, W.J., Webster, J.G.W. (editori), Interfacing Sensors to the IBM PC, Prentice Hall, SUA, 1988.

[20] Ţăţulescu, M., Instrumentaţie şi tehnici electrice de măsurare, Reprografia Universităţii din Craiova, 1997.

[21] ***, AT-MIO-16 User Manual, National Instruments, SUA, 1995.

[22] ***, LabVIEW User Guide, National Instruments, SUA, 1996. [23] ***, LabVIEW Data Acquisition Course Manual, National

Instruments, SUA, 2001. [24] ***, LabVIEW Measurements Manual, National Instruments,

SUA, 2000. [25] ***, NI-DAQ User Manual, National Instruments, SUA, 2001. [26] ***, Product Data: Sensors – Thermocouples, Connectors and

Platinum Resistance Thermometers, Eurotherm Controls Limited, Marea Britanie, 1994.