instrvi_10

28
166 10. Implementarea unui SRA virtual folosind placa de achiziţie AT-MIO-16H9 National Instruments 10.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 a 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 pentru Windows sau LabWindows pentru DOS, 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. 10.1. Structura generală a unei plăci de achiziţie tip AT-MIO-16 În Fig. 10.1, DI sunt dispozitive de intrare (achiziţie) care cuprind intrări numerice de la traductoare sau senzori de semnale 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. Aceste legături numerice sunt standardizate, placa fiind prevăzută cu două tipuri de legături: 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

Upload: alin-cristian

Post on 24-Oct-2015

9 views

Category:

Documents


0 download

DESCRIPTION

Instrumentatie Virtuala

TRANSCRIPT

166

10. Implementarea unui SRA virtual folosind placa de achiziţie AT-MIO-16H9 National Instruments

10.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 a 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 pentru Windows sau LabWindows pentru DOS, 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. 10.1. Structura generală a unei plăci de achiziţie tip AT-MIO-16

În Fig. 10.1, DI sunt dispozitive de intrare (achiziţie) care cuprind intrări numerice de la traductoare sau senzori de semnale 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. Aceste legături numerice sunt standardizate, placa fiind prevăzută cu două tipuri de legături: 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

167

numărare. Placa de achiziţie AT-MIO-16 se conectează pe placa de bază a unui calculator personal. În Fig. 10.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 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 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ă.

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

Intrările analogice şi circuitele de achiziţie de date manevrează 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.

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

168

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. 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). 10.2. Configurarea plăcii AT-MIO-16H9

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

169

RTSI (Real Time System Interface). Jumperele W12 şi W13 selectează canalul DMA, respectiv, nivelul de întrerupere.

10.2.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 10.1. Setările implicite ale interfeţei cu magistrala AT

Adresa I/O de bază 220H Domeniu: 220H – 23FH

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

10.2.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ă 220H. 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 220H şi 23FH. 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. 10.3 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. 10.3. Exemple de stabilire a adresei I/O de bază

170

10.2.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. 10.4 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. 10.5.

Fig. 10.4. Configurarea DMA implicită

Fig. 10. 5. a) Selectarea canalului DMA 6; b) Neutilizare DMA

10.2.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. 10.6).

Fig. 10.6. Setarea de fabrică (IRQ10) şi setarea unei alte întreruperi în caz de conflict (IRQ5)

1 DMA

W12

a) b)

171

În cazul în care nu sunt folosite întreruperile se utilizează setarea din Fig. 10.7.

Fig. 10.7.

10.2.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 10.2 este prezentată configurarea intrărilor şi ieşirilor analogice ale plăcii prin intermediul jumperelor.

Tabelul 10.2. 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

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 10.3 prezintă domeniile generale de intrare, precizia atinsă şi amplificarea obţinută pentru placa AT-MIO-16H.

172

Tabelul 10.3. 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

10.2.3. Circuite de izolare galvanică şi condiţionare semnal

De regulă la intrările plăcii AT-MIO-16, semnalele de intrare analogice se aplică prin intermediul unor circuite exterioare care au rolul de izolare galvanică pentru protecţia plăcii şi a calculatorului şi care realizează 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ă ş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ţă.

Circuitele de condiţionare de semnal modulare din seria 5B sunt proiectate pentru aplicaţii industriale, încorporează izolatoare galvanice şi au dimensiuni şi dispuneri ale terminalelor identice. Modulele de intrare izolate acceptă 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. Laboratorul dispune de două module de intrări cu izolare galvanică din seria 5B31-02, şi 5B41-02. Modulele din gama 5B31 acceptă semnale de tensiune la intrare 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. 10.8 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.

173

Fig. 10.8. Conectarea la proces a plăcii de achiziţii

10.3. 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. 10.9. Conectorul I/O este amplasat pe placă ş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).

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 0...15 ş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 0...15 sunt direcţionate spre intrarea pozitivă a amplificatorului de instrumentaţie al AT-MIO-16. În modul diferenţial DIFF, semnalele conectate la ACH 0...7 sunt direcţionate spre intrarea pozitivă a amplificatorului de instrumentaţie, iar semnalele conectate la ACH 8...15 spre intrarea negativă a amplificatorului de instrumentaţie. Domeniile de intrare şi valorile maxime care pot fi aplicate la intrările ACH 0...15 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ă.

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ă.

174

D A C 0 O U T

A C H 1 4A C H 6A 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 6A C H 1 A C H 9

1 2 A IG N DA IG N D

3 4 A C H 0 A C H 8

7 8A C H 2 A C H 1 0

A C H 4 A C H 1 2

9A C H 3 A C H 1 1

A C H 5 A C H 1 3

+ 5 V

B D IO 2A 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. 10.9. Asignarea pinilor la conectorul I/O al plăcii AT-MIO-16

10.4. Implementarea unui sistem de reglare virtual folosind LabVIEW

Sistemul de reglare care se implementează folosind LabVIEW se numeşte virtual deoarece atât regulatorul cât şi partea fixă sunt de fapt algoritmi discreţi care comunică la nivel de intrări respectiv ieşiri. Cel puţin din punct de vedere didactic acest experiment este deosebit de util deoarece scoate în evidenţă influenţele diferitelor legi de reglare asupra performanţelor sistemului de reglare precum şi modul în care dinamica părţii fixe influenţează aceste performanţe. Pentru implementarea acestui sistem propunem trei variante care ţin cont de dificultăţile ce provin din complexitatea experimentului precum şi de dotarea tehnică disponibilă.

O primă variantă, Fig. 10.10 – Varianta 1, implementează două programe LabVIEW care sunt interconectate la nivel de date. Ieşirea regulatorului va fi intrare în partea fixă, iar ieşirea părţii fixe va fi intrare în regulator. Această variantă poate rula pe un singur calculator şi nu are nevoie de prezenţa unei plăci de tipul AT-MIO-16 H9 sau al unei alte plăci de achiziţie pe staţia respectivă.

O a doua variantă, Fig. 10.10 – Varianta 2, se foloseşte de existenţa unei plăci de achiziţie pe calculatorul pe care se rulează programele LabVIEW. Se vor folosi două intrări şi două ieşiri analogice. Cele două ieşiri vor fi ieşirea regulatorului şi a părţii fixe, iar cele două intrări vor fi intrările în regulator şi în partea fixă. Intrările/ieşirile se vor conecta la nivel electric, iar intrările/ieşirile regulatorului şi părţii fixe vor folosi instrumente specializate pentru intrările/ieşirile numerice de pe placa de achiziţii. Schimbul de date între cele două programe LabVIEW se va face prin intermediul semnalelor vehiculate prin cele patru porturi analogice de intrare şi de ieşire.

A treia variantă, Fig. 10.10 – Varianta 3, foloseşte două calculatoare compatibile IBM/PC şi două plăci de achiziţie. Pe unul dintre calculatoare se va implementa regulatorul numeric, iar pe cel de-al doilea se va implementa partea fixă. Intrările/ieşirile se vor conecta la nivel electric, iar intrările/ieşirile regulatorului şi părţii fixe vor folosi instrumente specializate pentru controlul intrărilor/ieşirilor numerice de pe placa de achiziţii.

175

PC

Program LabVIEW

Regulator virtual (program LabVIEW)

Parte fixă virtuală (program LabVIEW)

PC

ProgramLabVIEW

Regulator virtual(program LabVIEW)

Parte fixă virtuală(program LabVIEW)

Placa de achiziţii

Input 1

Output 1

Input 2

Output 2

Varianta 1 Varianta 2

PC 2

PC 1

Program LabVIEW

Regulator virtual (program LabVIEW)

Placa de achiziţii

Input 1 Output 1

Output 1

Varianta 3

Program LabVIEW

Parte fixă virtuală (program LabVIEW)

Placa de achiziţii Output 1

Input 1

Fig. 10.10. Variante pentru implementarea unui SRA virtual

10.4.1. Implementarea unui SRA virtual. Varianta 1.

În această variantă vom implementa un program LabVIEW care să reunească cele două instrumente virtuale construite până acum: regulatorul numeric şi partea fixă discretizată. Principalele deosebiri constau în faptul că intrările în cele două instrumente virtuale nu vor mai fi furnizate de către noi prin intermediul unor controale ci vor fi intrări disponibile pentru conexiuni de date. Panoul frontal şi diagrama acestui SRA virtual sunt prezentate mai jos. Sunt necesare câteva precizări: deoarece ambele instrumente virtuale folosesc MATLAB Script, spaţiul de lucru MATLAB este partajat, deci se cuvin câteva precauţii.

176

Fig. 10.11. SRA virtual în varianta 1

Este necesar ca variabilele folosite să nu aibă acelaşi nume deoarece ele se vor modifica de către fiecare program în parte conducând la o funcţionare imprevizibilă. Din această cauză, cele două script-uri din LabVIEW se prezintă sub forma:

177

MATLAB Script regulator PID_real MATLAB Script parte fixă if (i==0) param=[Te,Kr,Ti,Td,Tg]; param1=zeros(size(param)); outr=[];lim=5; if (met==0) method='zoh'; elseif (met==1) method='foh'; elseif (met==2) method='imp' else method='Tustin'; end; end; param=[Te,Kr,Ti,Td,Tg]; if max(param~=param1) if (param(3)~=param1(3)) numin=1;denin=[Ti,0]; sys_in=tf(numin,denin); sysd_in=c2d(sys_in,Te,method); [numi_d,deni_d]=tfdata(sysd_in,'v'); end; num_d=[Td,0]; den_d=[Tg,1]; sys_d=tf(num_d,den_d); sysd_d=c2d(sys_d,Te,method); [numd_d,dend_d]=tfdata(sysd_d,'v'); end; if (i==0), xi=zeros(1,length(deni_d)-1); xd=zeros(1,length(dend_d)-1); y_i1=0; end; [y_d,xd1]=filter(numd_d,dend_d,ur,xd); [y_i,xi1]= filter(numi_d,deni_d,ur,xi); yr=y_d+y_i+Kr*ur; if ((yr>=lim)&&(ur>0)) y_i=y_i1;xi1=xi;end; if ((yr<=-lim)&&(ur<0)) y_i=y_i1;xi1=xi;end; yr=y_d+y_i+Kr*ur; if (yr>=lim), yr=lim;end; if (yr<=-lim), yr=-lim;end; xi=xi1;xd=xd1;y_i1=y_i; param1=param; outr=[outr,yr];

if (i==0) dim=length(NumI); numI=1; if (dim>0) for k=1:dim numI=conv(numI,[NumI(k),1]);end;end; dim=length(DenI); denI=1; if (dim>0) for k=1:dim denI=conv(denI,[DenI(k),1]);end;end; sysI=tf(numI,denI); sysI=minreal(sysI); dim=size(NumII,1); numII=[0,0,1]; if (dim>0) for k=1:dim numII=conv(numII,NumII(k,:));end;end; dim=size(DenII,1); denII=[0,0,1]; if (dim>0) for k=1:dim denII=conv(denII,DenII(k,:));end;end; sysII=tf(numII,denII); sysII=minreal(sysII); %construirea sistemului global sys=series(sysI,sysII); % se adauga componenta integratoare if (Oi~=0) deni=zeros(1,Oi+1);deni(1)=1; numi=1;sysi=tf(numi,deni); sys=series(sys,sysi);end; % se discretizeaza sistemul sysd=c2d(sys,Te,'zoh'); % se include timpul mort if (Tm~=0) tm=round(Tm/Te); ndm=1;ddm=zeros(1,tm+1);ddm(1)=1; sysm=tf(ndm,ddm,Te); sysd=series(sysd,sysm);end; [numd,dend]=tfdata(sysd,'v'); x0=zeros(length(dend)-1,1); out=[];lim1=5;end; % functionarea sistemului [y,x]=filter(numd,dend,u,x0); if (y>lim1),y=lim1;end; if (y<-lim1),y=-lim1;end; out=[out,y]; x0=x;

Putem construi un model Simulink pentru a putea verifica corectitudinea funcţionării

programelor. Acest model Simulink este de forma din Fig. 10.12. Se observă implementarea unui sistem anti-wind-up pe partea de integrare. Setarea simulării se va face cu ajutorul variabilelor globale din spaţiul de lucru MATLAB, ceea ce conduce la identitatea simulărilor obţinute. Pentru Te = 0.1 sec şi metode de discretizare ‘impulse’ se obţin rezultatele din Fig. 10.13.

Folosind acest SRA virtual, putem să observăm influenţa diferiţilor parametri ai regulatorului sau ai părţii fixe asupra comportamentului global al sistemului. Astfel, vom repeta simularea în cazul în care avem un timp mort de 0.55 sec. Se observă apariţia unui regim oscilant permanent, identic cu cel simulat în Simulink (Fig. 10.14.)

178

Fig. 10.12. Model Simulink pentru simularea SRA virtual LabVIEW

Fig. 10.13. SRA LabVIEW versus SRA Simulink

Din figura alăturată se observă că procesulde integrare a fost inhibat pe perioada(aproximativ 2 sec) cât comanda a depăşitlimita maximă.

179

Fig. 10.14. Apariţia fenomenului de “bătăi în limitări” datorat timpului mort si saturaţiei

Avantajele folosirii acestei variante de SRA sunt numeroase. Se pot enumera câteva:

- simularea nu are nevoie de existenţa unei plăci de achiziţii pe calculatorul gazdă - se poate testa o gamă nelimitată de instalaţii - se poate extinde uşor gama de regulatoare, în acest moment ele fiind limitate la regulatoare

PID - efortul de reproiectare în cazul modificării parametrilor regulatorului sau părţii fixe este

minim. Reproiectarea prin discretizare a noilor algoritmi se face automat folosind mediul MATLAB, accesat prin intermediul MATLAB Server-ului.

- efortul de programare în LabVIEW se reduce considerabil prin apelarea la puternicele funcţii de calcul folosite de MATLAB. Programele LabVIEW sunt mult mai compacte şi mai uşor de înţeles.

Dezavantajele acestei variante ar putea fi: - viteza de execuţie este mai scăzută. Motivele sunt cauzate de modalitatea de execuţie a

structurilor MATLAB Script folosite de programul LabVIEW ce implementează SRA virtual. Astfel, la lansarea în execuţie a programului, se lansează automat şi MATLAB/Simulink precum şi interfaţa de comunicaţie între LabVIEW şi MATLAB, anume MATLAB Server. Între cele două medii de programare există o permanentă comunicare, fapt consumator de timp. Mai mult, programul MATLAB nu este pre-compilat ci este interpretat, execuţia sa fiind mai lentă. În Fig. 10.15 se schematizează funcţionarea SRA virtual.

- Necesitatea existenţei pe calculatorul gazdă atât a unei variante mai evoluate de LabVIEW cât şi a mediului MATLAB/Simulink. Calculatorul gazdă trebuie să dispună de resurse hardware considerabile (memorie RAM de dimensiuni mai mari, procesor mai rapid etc…)

180

PC

ProgramLabVIEW

Regulator virtual(program LabVIEW)

Parte fixă virtuală (program LabVIEW)

MATLABServer

Interfaţa

MATLAB/LabVIEW

MATLAB

MATLAB Workspace

Variabile MATLAB folosite de LabVIEW

MATLABScript

MATLABScript

Comunicaţieinternă între programe

Fig. 10.15. Schema de funcţionare SRA virtual în varianta 1

Pentru funcţionarea în timp real a programului, se poate face o temporizare software folosindu-ne de instrumentul Wait Until Next ms Multiple.

La intrare se aplică numărul de milisecunde cu care se temporizează parcurgerea unei bucle. În acest fel programele care se execută repetitiv, adică sunt interioare unei structuri for sau while, se pot parcurge la intervale prestabilite de timp. În cazul nostru, diagrama se poate modifica prin introducerea unei mici secvenţe LabVIEW de forma

Perioada de eşantionare, exprimată în secunde, se multiplică cu constanta 1000 pentru a exprima această perioadă de eşantionare în milisecunde. Bucla while ce include programul LabVIEW va furniza date la intervale constante de timp, egale cu perioada de eşantionare. Funcţionarea se poate testa prin comparare cu un cronometru. Temporizarea este software deoarece ea se face prin program. Cum sistemul de operare Windows nu este un sistem de timp real, orice întrerupere de sistem (de la mouse, imprimantă sau de lansarea în execuţie a unui alt program) va conduce la întreruperea programului LabVIEW, pierzându-se simultaneitatea cu timpul real. Pentru reducerea dimensiunilor unui program MATLAB se propune folosirea unor subprograme (SubVIs) care pot fi inserate ulterior în alte diagrame program. În cele ce urmează vom crea două obiecte de tip SubVIs denumite PID_mlb (PID implementat cu MATLAB Script) respectiv PF_mlb (Parte Fixă implementată cu MATLAB Script). Celor două obiecte le vor corespunde două icoane distincte şi intitulate semnificativ. Vom prezenta procesul de comprimare al programului LabVIEW explicitând etapele de transformare.

a. Construirea unui obiect virtual PID_mlb În principiu, construirea unei subrutine (subprogram) sau a unei funcţii conduce la reducerea dimensiunilor programului şi la o mai simplă implementare. LabVIEW, care este un program orientat pe obiecte şi cu o interfaţă grafică foarte performantă, foloseşte obiecte grafice ce se

181

conectează într-un flux de informaţii ce conduc la un program funcţional. O subrutină sau o funcţie este reprezentată în LabVIEW ca o icoană cu conectori de intrare (pentru variabilele de intrare în funcţie) şi cu conectori de ieşire (pentru variabilele de ieşire returnate). Variabilele de intrare se numesc controale (Controls) iar cele de ieşire se numesc indicatoare (Indicators). Orice program LabVIEW (instrument virtual) are asociată o icoană, nu neapărat distinctă.

Fig. 10.16. Procesul de editare a unei icoane şi de asignare a terminalelor

Prin dublu clic pe icoana din panoul frontal se intră într-un editor de icoane în care se pot individualiza icoanele corespunzătoare diferitelor instrumente virtuale. Folosind editorul de icoane, mai precis editorul de text din meniu, putem denumi o icoană PID_mlb, spre exemplu, ca în Fig. 10.16. Utilizând butonul drept al mouse-ului, putem accesa opţiunea Show terminals, caz în care cadrul pătrat al icoanei se divide în mai multe regiuni corespunzătoare cu numărul de intrări (controale) şi de ieşiri (indicatoare) existente în fereastra panou frontal. Folosind instrumentul de legare a terminalelor, aceste terminale se pot asigna prin legarea efectivă a unui terminal al icoanei cu un control sau indicator din fereastra panou frontal.

Fig. 10.16a. Procesul de asignare a terminalelor

După ce toate terminalele au fost asignate, instrumentul virtual care este reprezentat de icoana pe care am editat-o se poate insera în orice altă diagramă.

182

Spre exemplu, instrumentul virtual PID_subvi.vi, Fig. 10.17, implementează funcţionarea unui regulator PID. El provine din instrumentul virtual deja proiectat prin câteva mici modificări care au făcut ca fiecărei variabile de intrare să-i corespundă un control şi fiecărei variabile de ieşire un indicator.

Fig. 10.17. Panoul frontal şi diagrama PID_subvi

b. Construirea unui obiect virtual PF_mlb Folosind aceeaşi metodologie, obţinem instrumentul virtual PF_mlb care este reprezentat în Fig. 10.18.

Atragem atenţia asupra faptului că, indiferent dacă anumite terminale se vor folosi pentru interconectare, în procesul de asignare a terminalelor acestea se vor conecta neapărat la controalele sau indicatoarele corespunzătoare. Prin acest proces se vor putea asigna efectiv terminalele. Chiar dacă anumite controale au anumite valori iniţiale predefinite, prin procesul de conectare ulterior al acestui instrument virtual, ele vor fi ignorate şi instrumentul va moşteni valorile de la terminalele de intrare. În acest fel programele LabVIEW de dimensiuni mari se vor micşora considerabil şi va creşte şi flexibilitatea în programare. SRA implementat anterior se va prezenta sub forma din Fig. 10.19. Din diagramă se observă că programul conţine două elemente principale: obiectele LabVIEW PID_mlb şi PF_mlb. Restul elementelor componente sunt controale sau indicatoare corespunzătoare terminalelor acestor obiecte.

Se recomandă construirea unei biblioteci de subprograme (cu extensia .llb) în care se stochează toate instrumentele virtuale de tip funcţie ale utilizatorului. Din această bibliotecă se pot prelua oricând funcţiile necesare şi insera în diagramele altor programe LabVIEW.

183

Fig. 10.18. Panoul frontal şi diagrama PF_subvi

184

Fig. 10.19. SRA - varianta 1, forma redusă

10.4.2. Implementarea unui SRA virtual. Varianta 2.

Această variantă este destinată unui calculator gazdă dotat cu o placă de achiziţii produsă de firma National Instruments. Cum pe calculator trebuie să ruleze atât MATLAB cât şi o variantă mai evoluată de LabVIEW, placa de achiziţii trebuie să fie PCI deoarece calculatoarele moderne nu mai sunt prevăzute cu sloturi AT. În această variantă semnalele ce se transferă între regulator şi partea fixă sunt externe şi au formă electrică, nu sunt sub formă de date numerice interne. Datele de intrare sunt luate de la CAN, prelucrate şi trimise la ieşire către CNA. Această variantă de implementare se apropie mai mult de varianta industrială, singura diferenţă constând în faptul că în realitate partea fixă este reală, nu virtuală (program LabVIEW). Flexibilitatea părţii fixe virtuale este însă mult mai mare, teoretic putându-se implementa orice dinamică liniară dorită, inclusiv timpul mort.

PC

ProgramLabVIEW

Regulator virtual(program LabVIEW)

Parte fixă virtuală (program LabVIEW)

MATLAB Server

Interfaţa

MATLAB/LabVIEW

MATLAB

MATLAB Workspace

Variabile MATLAB folosite de LabVIEW

MATLABScript

MATLABScript

Placa de achiziţii AT-MIO-16H9

Canal 0

CAN 0

CNA 0

Canal 1

CAN 1

CNA 1

Comunicaţieexternă între programe

Fig. 10.20. Schema de funcţionare SRA virtual în varianta 2

10.4.2.1. Intrările analogice ale plăcii de achiziţie Instrumentele pe care le putem folosi pentru intrări de date de la CAN sunt grupate în Data Acquisition>>Analog Input.

185

Prin achiziţie temporizată înţelegem achiziţia prin care fixăm rata de eşantionare. Prin scan înţelegem un eşantion/canal. Scanarea face o citire de la un grup de canale.

Prin achiziţie nebufferată înţelegem că achiziţia se face direct de la canalele de intrare. Dacă achiziţia este nebufferată, se foloseşte stiva FIFO.

Dacă achiziţia este netemporizată, atunci scanul se ia direct de la intrările de pe placă la viteza cea mai mare, deci achiziţia netemporizată este întotdeauna ne-bufferată.

Achiziţia temporizată poate fi bufferată sau nu. Dacă este bufferată, se folosesc bufferele declarate mai înainte. Ca o concluzie, orice

achiziţie bufferată este temporizată. Termenul de read se va folosi exclusiv pentru achiziţii bufferate. Termenul de scan se poate referi fie la achiziţie direct de la intrările plăcii fie din buffer. Toate instrumentele din Advanced nu apelează la alte instrumente ci implementează direct cod. Există 3 tipuri de achiziţie: temporizată sau netemporizată, bufferată sau nebufferată. 1. Achiziţia netemporizată (Non-timed acquisition) şi implicit nebufferată. Iniţiază o singură scanare (single scan) a tuturor canalelor analogice de intrare specificate într-un grup folosind cea mai rapidă şi mai sigură frecvenţă de ceas a canalului (channel clock rate). Se poate modifica totuşi frecvenţa de ceas a canalului folosind AI Clock Config VI. 2. Achiziţia temporizată şi nebufferată (Timed, non-buffered acquisition). Placa sau instrumentul virtual folosit (device) trebuie să fie deja iniţializat(ă) folosindu-se AI Config VI cu valoarea buffer size (dimensiune buffer) setată la 0. De asemenea, achiziţia pe canal trebuie deja startată folosindu-se AI Control VI cu codul de control setat la valoarea 0 (Start). Se scanează intrările cu frecvenţa de scanare a plăcii şi se stochează rezultatele în stiva FIFO de pe placă. Acest tip de achiziţie este foarte utilă pentru sincronizarea intrărilor şi ieşirilor analogice în aplicaţiile de control de tip punct-la-punct. Aceasta înseamnă că prin achiziţia unui eşantion al intrării regulatorul calculează un eşantion pentru ieşire. Notă: Dacă se depăşeşte capacitatea FIFO (FIFO overflow) în timpul unei achiziţii temporizate şi nebufferate, atunci LabVIEW restartează instrumentul de achiziţie. 3. Achiziţie bufferată şi implicit temporizată (Buffered (always timed)) Placa sau instrumentul virtual folosit (device) trebuie să fie deja iniţializat(ă) folosindu-se AI Config VI cu valoarea buffer size (dimensiune buffer) setată la dimensiunea dorită pentru buffer. De asemenea, achiziţia pe canal trebuie deja startată folosindu-se AI Control VI cu codul de control setat la valoarea 0 (Start). Se scanează intrările cu frecvenţa de scanare a plăcii şi se stochează rezultatele în bufferul alocat.

Tip de achiziţie Denumirea instrument virtual

Icon

Nivelul de implementare

1. Netemporizată (implicit nebufferată)

AI Sample Channel

Easy

186

AI Sample Channels

Easy

AI Read One Scan

Utility

AI SingleScan*

Advanced (time limit)

AI Single Scan*

Intermediate

AI Acquire Waveform

Easy

AI Acquire Waveforms

Easy

2. Temporizată şi nebufferată

AI Waveform Scan

Utility

AI Buffer Read

Advanced (time limit)

AI SingleScan*

Advanced (time limit)

AI Read

Intermediate

AI Single Scan*

Intermediate

3. Temporizată şi bufferată

AI Continuous Scan

Utility

Observaţie. * poate fi folosit şi în mod bufferat şi în mod nebufferat

(time limit) semnifică faptul că aşteaptă pentru o achiziţie o limită de timp

187

10.4.2.2 Ieşirile analogice ale plăcii de achiziţie Aceleaşi considerente se pot face pentru ieşirile analogice. Instrumentele se află grupete în Data Acquisition>> Analog Output. Fiecare CNA este bufferat intern, deci producerea unei tensiuni dintr-o valoare numerică este un proces în doi paşi:

- Primul pas, constă în scrierea (write sau output) a unei noi date în CNA. - Al doilea pas, trimite un impuls de conversie (update pulse) către CNA pentru a produce

conversia Numerică/Analogică şi deci o nouă valoare la ieşire (volţi). În mod normal, impulsul de conversie este generat de o aplicaţie de generare de forme de undă, dar şi o comandă software poate produce un update pulse.

La fel ca instrumentele pentru intrări analogice, şi cele pentru ieşiri analogice sunt structurate după uşurinţa în utilizare (respectiv după complexitatea lor): avansate (advanced) → simple (easy)

Spre deosebire de achizţie, aici nu avem decât două tipuri de ieşiri: bufferate şi temporizate,

respectiv nebufferate şi netemporizate. CNA are o stivă FIFO care se poate accesa direct dacă avem

Pentru achiziţia de date de la CAN vomfolosi instrumentul AI One PT (AnalogInput One Point) care citeşte la momentulapelării (nesincronizat) o singură valoarede la CAN. Din ierarhia prezentatăalăturat se observă că acest instrumentsimplu de apelat apelează la AI 1-Scancare, la rândul său, apelează lainstrumentul de configurare (AI Config) şiapoi la cel de achiziţie a unui scan (SingleScan). Pentru creşterea vitezei deachiziţie se recomandă configurarea doarla primul apel al instrumentului.

188

o ieşire nebufferată, respectiv prin intermediul unuia sau mai multor buffere pe care le configurăm noi.

Tip de ieşire Denumirea instrument virtual

Icon

Nivelul de implementare

AO Update Channel

Easy (uşor)

AO Update Channels

Easy (uşor)

AO Write One Update

Utility (utilitate)

4. Netemporizată şi nebufferată

AO Single Update

Advanced (avansat)

AO Generate Waveform

Easy (uşor)

AO Generate Waveforms

Easy (uşor)

AO Continuous Gen

Utility (utilitate)

AO Waveform Gen

Utility (utilitate)

AO Write

Intermediate (intermediar)

5. Temporizată şi bufferată

AO Buffer Write

Advanced (avansat)

Pentru implementarea sistemului de reglare virtual vom folosi instrumentul AO One PT. Ca orice obiect din categoria Easy aceste este de complexitate mare dar mult mai uşor de folosit. În esenţă structura sa este compusă dintr-un instrument de configurare a ieşirii analogice şi unul de achiziţie propriu-zisă. 10.4.3. Implementarea LabVIEW a SRA în varianta 2

Pentru implementarea propriu-zisă, ieşirile din fiecare componentă SRA virtuală (regulator sau parte fixă) se vor conecta la două ieşiri analogice: una pe canalul 0 (CNA 0) şi una pe canalul 1 (CNA 1). Analog, intrările în regulatorul virtual sau partea fixă virtuală vor proveni de la intrările analogice de pe canalele 0 respectiv 1 (CAN 0, CAN1). Se vor folosi instrumentele virtuale AI ONE PT pentru intrările analogice respectiv AO ONE PT pentru ieşirile analogice. Cele două instrumente sunt descrise pe scurt mai jos.

Device se referă la numărul de ordine al plăcii de achiziţie. Acesta este implicit 1 dacă nu avem decât o singură placă de achiziţii pe calculatorul gazdă. Dacă avem mai multe, accesarea lor se face prin device = 1, 2,...etc. Channel se referă la canalul de intrare/ieşire folosit. Implicit se foloseşte canalul 0. În cazul nostru, vom folosi două canale de intrare/ieşire. Canalul 0 se va folosi pentru regulatorul PID virtual iar canalul1 se va folosi pentru partea fixă.

189

Fig. 10.21. Structura instrumentelor complexe AO ONE PT şi AI ONE PT

Din Fig. 10.21 se observă că, în cazul în care vom folosi aceste instrumente într-o buclă while,

procesul de configurare se va face la fiecare pas. Din această cauză putem propune două soluţii. Prima constă în plasarea instrumentelor AO CONFIG şi AI CONFIG în afara buclei while,

caz în care configurarea se va face o singură dată la începutul execuţiei programului. A doua soluţie constă în legarea terminalului iteration la contorul de iteraţii al buclei while,

caz în care configurarea se va face numai la pasul iniţial.

190

Fig. 10.22. SRA în varianta 2

După cum se observă din Fig. 10.22 s-a folosit prima variantă. În afară buclei while s-au implementat două grupuri de instrumente de configurare: AI CONFIG şi AO CONFIG (pentru canalul 0) pentru intrarea/ieşirea alocate regulatorului PID precum şi AI CONFIG şi AO CONFIG (pentru canalul 1) pentru intrarea/ieşirea alocate părţii fixe PF. Aceste instrumente de configurare sunt conectate cu elementele de intrare/ieşire plasate în cadrul buclei while care se vor folosi la fiecare parcurgere a buclei, anume două perechi de instrumente de tipul Single Scan (pentru achiziţia de la CAN) precum şi Single Update (pentru comunicarea cu CNA). După cum se vede, aceste instrumente sunt conectate respectând regulile prezentate în Fig. 10.21. 10.4.4. Implementarea LabVIEW a SRA în varianta 3

Această variantă este cea mai apropiată de varianta reală. Dispunem de două PC-uri, fiecare având câte o placă de achiziţii. Pe unul dintre calculatoare se implementează regulatorul PID iar pe celălalt se implementează dinamica unei părţi fixe. Legăturile (semnalele) dintre cele două subsisteme vor fi de natură electrică. Fiecare dintre programele implementate vor fi de dimensiuni mai mici şi se vor executa, implicit, mai rapid. Flexibilitatea acestei variante de implementare este deosebită. Pentru implementare, programul din varianta 2 se împarte în două unităţi funcţionale: una pentru regulator şi una pentru partea fixă, Fig. 10.23.. În Fig. 10.24 se prezintă cele două diagrame corespunzătoare.

191

PC 1

ProgramLabVIEW

Regulator virtual(program LabVIEW)

MATLAB Server Interfaţa

MATLAB/LabVIEW

MATLAB

MATLAB Workspace

Variabile

MATLAB folosite de LabVIEW

MATLABScript

Placa de achiziţii AT-MIO-16H9

Canal 0

CAN 0

CNA 0

Comunicaţie externă între programe

PC 2

ProgramLabVIEW

MATLAB Server Interfaţa

MATLAB/LabVIEW

MATLAB

MATLAB Workspace

Variabile

MATLAB folosite de LabVIEW

Placa de achiziţii AT-MIO-16H9

Canal 0

CAN 0

CNA 0

Parte fixă virtuală (program LabVIEW)

MATLABScript

Fig. 10.23. Schema de funcţionare SRA virtual în varianta 3

192

193

Fig. 10.24. Panourile frontale şi diagramele celor două instrumente virtuale:

regulator PID şi partea fixă

Din cele prezentate concluzionăm că soluţiile de implementare ale SRA virtualeprezentate în acest proiect sunt soluţii moderne în conformitate cu dezvoltările hardware şi software ale anilor 2000.

Implementarea lor necesită utilizarea unor plăci de achiziţie profesionale produse de National Instruments dar care reprezintă un aşa numit state of art în materie de plăci de achiziţie pentru controlul proceselor industriale.

Software-ul care se pretează pentru aceste plăci de achiziţie constă într-o foarte productivă combinaţie între LabVIEW şi MATLAB care conduce la o rapidă proiectare şi implementare practică a soluţiilor de automatizare.