Sunteți pe pagina 1din 109

CIPRIAN ORNDARU

INSTRUMENTAIE VIRTUAL N INGINERIA ELECTRIC

Descrierea CIP a Bibliotecii Naionale ORNDARU, CIPRIAN Instrumentaie virtual n ingineria electric / Ciprian orndaru : Orizonturi Universitare, 2003 173 p. ; 24 cm. Bibliogr. ISBN

CIPRIAN ORNDARU

Refereni tiinifici

Prof. univ. dr. ing. GHEORGHE ATANASIU Prof. univ. dr. ing. DORIN POPOVICI
Universitatea "POLITEHNICA" din Timioara

Consilier editorial Prof.univ.dr.ing. tefan KILYENI

INSTRUMENTAIE VIRTUAL N INGINERIA ELECTRIC


Tehnoredactare computerizat Ciprian ORNDARU Valentina TEF

Coperta Ioana BANCIU

EDITURA ORIZONTURI UNIVERSITARE TIMIOARA 2003

2003 Editura ORIZONTURI UNIVERSITARE Timioara

PREFA
Prin termenul de Instrumentaie Virtual se nelege utilizarea unui computer, dotat cu echipamente periferice de intrare i ieire specializate, pentru a simula caracteristicile i funcionarea unui instrument sau sistem de msurare, de testare sau de nregistrare a datelor. Instrumentele virtuale fac uz de traductoare i senzori pentru a intra n contact cu mrimea fizic msurat, de eventuale sisteme de condiionare a semnalelor, precum i de circuite pentru conversia analog - digital. Diferena n raport cu sistemele de msurare "clasice" este aceea c de aceast dat toate funciunile de prelucrare i analiz a valorilor msurate, de stocare a acestor informaii i de transmitere a lor ctre utilizatorul uman sunt realizate de ctre computer i nu de ctre aparatura dedicat. Aplicaiile software nlocuiesc astfel componente estimate a reprezenta 80% din circuitele unui aparat de msurare sau testare specializat "clasic".
Software-ul care realizeaz aceste funciuni posed n majoritatea cazurilor o interfa grafic avnd acelai aspect ca i cel al panoului frontal al unui aparat de msurare. Acesta este motivul pentru care aplicaiile respective sunt numite Instrumente Virtuale.

Unul din programele care s-au impus n domeniul instrumentaiei virtuale este realizat de firma National Instruments i se numete LabVIEW. LabVIEW este un program din multe puncte de vedere asemntor cu C, PASCAL, BASIC, sau cu produsul LabWindows al aceleiai firme, National Instruments. Totui LabVIEW difer de toate aceste aplicaii printr-un aspect foarte important: pe cnd celelalte sisteme de programare utilizeaz limbajele bazate pe text pentru a crea linii de cod, LabVIEW folosete un limbaj grafic de programare, G, pentru a crea programe n form de diagrame bloc. LabVIEW, la fel ca i C, PASCAL sau BASIC este un sistem de programare de uz general, cu extinse biblioteci de funcii cu scopul de a realiza cele mai variate tipuri de aplicaii. LabVIEW include biblioteci pentru achiziii de date (GPIB i interfaare cu control serial), instrumente, analiz de date, prezentare i stocare de valori. LabVIEW include de asemenea faciliti identice cu cele ale programelor convenionale. De exemplu pot fi setate, n cadrul programului, puncte de oprire, poate fi amnat execuia unui program pentru a vedea parcursul valorilor de la intrare i pn la ieire, precum i posibilitatea de execuie pas cu pas a programului pentru a facilita o depanare mai uoar a acestuia n cazul apariiei unor erori.

Programele LabVIEW sunt numite instrumente virtuale pentru c, prin forma lor, precum i prin modul lor de operare imit instrumentaia actual de msur i control. Instrumentele virtuale au o interfa interactiv cu utilizatorul, un cod-surs echivalent i accept o ierarhizare mpreun cu alte instrumente virtuale. Cu toate acestea ele sunt identice cu funcii din limbajele de programare convenionale. Instrumentele virtuale au o structur ierarhic i modular. Acestea pot fi utilizate att ca i programe principale ct i ca subprograme n interiorul altor programe sau subprograme. Un instrument virtual (denumit prescurtat IV, dup denumirea sa n limba englez: Virtual Instrument), utilizat ca subprogram pentru un alt IV este denumit subinstrument virtual (subIV). Icoana i conectorul unui subinstrument virtual lucreaz ca i parametri, astfel nct datele pot fi vehiculate ntre cele dou instrumente virtuale. Avnd n vedere toate aceste faciliti, mediul de programare LabVIEW promoveaz i ader la conceptul de programare modular, n mod asemntor cu mediile de programare ale firmei Borland: C, C++, PASCAL, etc. Prezenta lucrare se adreseaz studenilor n domeniul ingineriei electrice i se dorete a fi un suport pentru curs dar i pentru prile aplicative (laborator, proiect). Lucrarea poate fi util n aceeai msur inginerilor i oricror persoane interesate n domeniul instrumentaiei virtuale i al sistemelor de control i achiziie de date (SCADA). Mulumesc pe aceast cale domnilor Prof.dr.ing. Gheorghe Atanasiu i Prof.dr.ing. Dorin Popovici pentru atenia i rbdarea cu care au recenzat materialul de fa, precum i pentru sugestiile fcute. De asemenea doresc s mulumesc colectivului Laboratorului de Testare Maini Electrice cu Sisteme de Achiziie i Prelucrare a Datelor D109 al Facultii de Electrotehnic din Timioara coordonat de domnul Prof.dr.ing. Marius Biriescu, pentru amabilitatea cu care mi-a pus la dispoziie programul, echipamentele i documentaia aferent, necesare elaborrii acestei lucrri. Toate referirile i aplicaiile prezentate n prezentul volum sunt realizate n versiunea 6.0 a programului LabVIEW.

Ciprian orndaru

CUPRINS
1. INTRODUCERE N LabVIEW....................................................................................9 1.1. Instrumente virtuale .............................................................................................9 1.2. Mediul de programare LabVIEW...........................................................................11 1.2.1. Crearea unui nou IV .................................................................................12 1.2.2. ncrcarea unui IV....................................................................................12 1.2.3. Panoul i diagrama Windows .....................................................................13 1.2.4. Meniul principal ........................................................................................16 1.2.5. Paleta de unelte .......................................................................................19 1.2.6. Paleta de comenzi ....................................................................................20 1.2.5. Paleta de funcii........................................................................................21 1.2.7. Salvarea unui IV .......................................................................................23 1.3. Opiunile de ajutor din LabVIEW ..........................................................................25 1.4. Aplicaie .............................................................................................................26 2. CREAREA, EDITAREA SI DEPANAREA UNUI VI ....................................................27 2.1. Crearea unui instrument virtual ...........................................................................27 2.2. Tehnici de editare ...............................................................................................32 2.3. Tehnici de depanare............................................................................................36 2.4. Noduri proprietate ..............................................................................................37 2.5. Aplicaii propuse .................................................................................................40 3. CREAREA UNUI SubIV ...........................................................................................41 3.1. Idei de baza .......................................................................................................41 3.2. Crearea unei icoane si a unui conector .................................................................41 3.3. Proprietile unui instrument virtual .....................................................................47 3.4. Utilizarea unui IV ca un subIV ............................................................................50 3.5. Crearea unui subIV dintr-o selecie ......................................................................52 4. BUCLE. REGITRI DE DEPLASARE. CONVERSIE NUMERIC ..............................53 4.1. Bucla WHILE ......................................................................................................53 4.2. Aciunea mecanic a comutatoarelor booleene .....................................................55 4.3. Regitri de deplasare ..........................................................................................56 4.4. Bucla FOR ..........................................................................................................58 4.5. Conversia numeric ............................................................................................60 5. GRUPURI ................................................................................................................63 5.1. Elemente generale. Crearea grupurilor .................................................................63 5.2. Crearea grupurilor de constante n diagrama bloc. ................................................64 5.3. Ordinea elementelor ntr-un grup.........................................................................66 5.4. Utilizarea grupurilor pentru transferul datelor ntre dou subIV-uri .........................68 5.5. Funcii referitoare la grupuri ................................................................................69 5.5.1. Realizarea grupurilor.................................................................................69 5.5.2. Descompunerea grupurilor ........................................................................71 5.5.3. Conversia grupurilor. .................................................................................72 5.5.4. Operaii cu grupuri....................................................................................72 6. MATRICE ................................................................................................................73 6.1. Elemente generale ..............................................................................................73 6.2. Crearea matricelor utiliznd bucle ........................................................................76 6.3. Funcii referitoare la matrice................................................................................78 6.4. Polimorfisme ......................................................................................................81 6.5. Aplicaii propuse .................................................................................................82 7. DIAGRAME ALE FORMELOR DE UND I GRAFICE .............................................83 7.1. Elemente generale ..............................................................................................83 7.2. Diagrame ale formelor de und ............................................................................85 7.3. Grafice 2D ..........................................................................................................89 7.4. Grafice numerice ................................................................................................92

7.5. Grafice 3D ..........................................................................................................92 7.6. Aplicaii propuse .................................................................................................94 8. STRUCTURI DE TIP CAZ I SECVEN. FORMULA DE CALCUL ...........................95 8.1. Structura de tip caz.............................................................................................95 8.2. Structura de tip secven.....................................................................................97 8.3. Formula de calcul................................................................................................99 9.6. Aplicaii propuse ............................................................................................... 104 9. IRURI I FIIERE DE INTRARE / IEIRE. TABELE .......................................... 105 9.1. iruri................................................................................................................ 105 9.2. Funcii referitoare la iruri ................................................................................. 108 9.3. Fiiere de intrare / ieire .................................................................................... 112 9.4 .Tabele i fiiere de intrare / ieire ....................................................................... 117 9.5. IV-uri referitoare la fiiere binare ....................................................................... 121 9.6. Aplicaii propuse ............................................................................................... 122 10. CONFIGURAREA INSTRUMENTULUI VIRTUAL ................................................ 123 11. ACHIZIIA DE DATE .......................................................................................... 129 11.1. Generaliti................................................................................................... 129 11.2. Organizarea IV-urilor pentru achiziia de date ................................................. 133 11.3. Intrrile analogice ......................................................................................... 134 11.4. Ieirile analogice ........................................................................................... 136 11.5. Scanarea mai multor canale de intrri analogice ............................................. 136 11.6. Aplicaie ....................................................................................................... 138 12. VARIABILE LOCALE I GLOBALE ...................................................................... 141 12.1. Crearea i utilizarea variabilelor locale ............................................................ 141 12.2. Crearea i utilizarea variabilelor globale .......................................................... 147 12.3. Consideraii referitoare la utilizarea variabilelor locale i globale ....................... 151 13. BIBLIOTECA MATEMATIC LabVIEW. APLICAII N DOMENIUL INGINERIEI ELECTRICE .................................................................................... 153 13.1. Prezentare general ...................................................................................... 153 13.2. Rezolvarea ecuaiilor i a sistemelor de ecuaii difereniale............................... 154 13.2.1. Metoda Runge-Kutta de ordinul 4.............................................................. 155 13.2.2. Metoda Cash Karp de ordinul 5 ................................................................. 156 13.2.3. Metoda Euler............................................................................................ 157 13.2.4. Metoda numeric de rezolvare a ecuaiilor difereniale liniare de ordinul n .. 157 13.2.5. Metoda simbolic de rezolvare a ecuaiilor difereniale liniare de ordinul n .. 158 13.2.6. Metoda numeric de rezolvare a sistemelor de ecuaii difereniale liniare .... 158 13.2.7. Metoda simbolic de rezolvare a sistemelor de ecuaii difereniale liniare..... 159 13.3. Aplicaii ........................................................................................................ 159 13.3.1. Generatorul de curent continuu................................................................. 159 13.3.2. Maina de curent continuu cu excitaie separat ........................................ 160 13.3.3. Maina de inducie.................................................................................... 161 13.3.4. Maina sincron cu magnei permaneni.................................................... 163 13.4. Rezolvarea ecuaiilor difereniale de ordinul doi............................................... 165 14. APLICAII N DOMENIUL ELECTRONICII NUMERICE .................................... 167 14.1. Adunarea binar ........................................................................................... 167 14.2. Convertorul numeric-analogic ........................................................................ 169 14.3. Convertorul analog-numeric........................................................................... 171 14.4. Celula de afiare numeric cu apte segmente................................................ 171 14.5. Aplicaie propus .......................................................................................... 172 BIBLIOGRAFIE ......................................................................................................... 173

Capitolul 1

INTRODUCERE N LabVIEW
1.1. Instrumente virtuale
Programele LabVIEW sunt denumite instrumente virtuale - IV (n limba englez virtual instruments, prescurtat VIs). Instrumentele virtuale au trei pri principale: panoul frontal, diagrama bloc i pictograma / conectorul.

utilizeaz pictograma / conectorul. Pictograma reprezint grafic instrumentul virtual n dia-grama bloc a altui instrument. Terminalele conectorului determin unde anume trebuie legate intrrile, respectiv ieirile respectivei subrutine. Terminalele sunt analoage parametrilor subrutinei. Ele corespund comenzilor i indicatoarelor de pe panoul frontal al instrumentului. Figura 1.3 reprezint pictograma i conectorul pentru instrumentul Temperature.vi. Conectorul este de obicei ascuns n spatele pictogramei, pn n momentul n care utilizatorul dorete explicit vizualizarea lui.

Panoul frontal este mediul prin intermediul cruia utilizatorul seteaz mrimile de intrare i vizualizeaz ieirile din diagrama bloc a instrumentului virtual. Deoarece panoul frontal este analog unui panou frontal al unui instrument real, intrrile sunt denumite comenzi iar ieirile sunt denumite indicatoare. Se pot utiliza o mare varietate de comenzi i indicatoare cum ar fi de exemplu: butoane rotative, ntreruptoare, comutatoare, diagrame, grafice .a.m.d. pentru a face ca panoul frontal s fie uor identificabil i de neles. Un exemplu de panou frontal pentru un instrument virtual Temperature.vi este prezentat n figura 1.1.

Figura 1.2. Diagrama bloc a instrumentului Temperature.vi

Figura 1.1. Panoul frontal al instrumentului Temperature.vi Figura 1.3. Conectorul i pictograma instrumentului Temperature.vi

Fiecare panou frontal are o diagram bloc care l nsoete, care este de fapt programul instrumentului virtual. Diagrama bloc se construiete utiliznd limbajul de programare grafic, G. Diagrama bloc poate fi privit ca i codul surs al aplic-aiei. Componentele diagramei bloc reprezint nodurile programului; de exemplu buclele For, structurile de tip Case, funciile aritmetice, .a.m.d. Componentele sunt legate ntre ele pentru a determina circulaia datelor n cadrul diagramei bloc. Diagrama bloc pentru Temperature.vi este prezentat n figura 1.2. Pentru a transforma instrumentul virtual ntr-un obiect (subIV) care poate fi utilizat ca i o subrutin n diagramele bloc ale altor instrumente virtuale se

Puterea mediului LabVIEW rezid n natura ierarhic a instrumentelor virtuale. Dup crearea unui instrument virtual, acesta poate fi folosit n diagrama bloc a unui instrument de nivel superior. Practic numrul straturilor din aceast ierarhie este nelimitat. Ca un exemplu, sa privim un instrument virtual care utilizeaz Temperature.vi ca i un subIV n diagrama sa bloc (figura 1.4). Panoul frontal al instrumentului ierarhic superior este prezentat n figur. Temperature.vi, folosit ca i un subIV, colecteaz datele, i apoi instrumentul ierarhic superior traseaz grafic rezultatele. Numrul msurtorilor precum i timpul (ntrzierea) ntre dou msurtori sunt specificate prin intermediul panoului frontal al instrumentului ierarhic superior.

Instrumentul virtual ierarhic superior conine subrutina Temperature.vi ntr-o bucl. Instrumentul virtual colecteaz valorile msurate pe perioada fiecrei iteraii a buclei. Dup ce bucla este executat de un numr specificat de ori, instrumentul virtual transfer informaiile ctre instrumentul superior care traseaz graficele pe panoul su frontal. Toate aceste elemente vor fi discutate mai trziu.

1.2. Mediul de programare LabVIEW


Sistemul LabVIEW const n aplicaia LabVIEW i cteva fiiere asociate. n mediul Windows, meniul grupului LabVIEW conine de regul urmtoarele picto-grame:
Programul LabVIEW, care lanseaz aplicaia executabil Pictograma de dezinstalare LabVIEW Utilitarul NI-DAQ instalat opional

1.2.1. Crearea unui nou IV


La lansarea n execuie a aplicaiei LabVIEW apare fereastra principal (fig.1.5.)

Figura 1.5. Fereastra principal LabVIEW

Crearea unui nou instrument virtual se poate face:


utiliznd tastele de scurcircuit Ctrl+N.

din fereastra principal LabVIEW selectnd comanda New VI; din meniul unui alt IV deschis deja, selectnd comanda File New VI sau

1.2.2. ncrcarea unui IV


ncrcarea unui instrument virtual se poate face n mai multe feluri:
Figura 1.4. Utilizarea IV-ului Temperature.vi ca un subIV

Cu LabVIEW se poate folosi un IV ca un subIV. Aceast caracteristic face ca diagramele bloc s fie modulare i uor de depanat, neles i ntreinut.

Figura 1.7. ncrcarea unui IV dintr-o bibliotec

din fereastra principal LabVIEW (figura 1.5) selectnd comanda Open VI.

Figura 1.6. ncrcarea unui IV

Un instrument virtual poate fi ncrcat direct din directorul curent (figura 1.6), dintr-un alt director sau dintr-o bibliotec (figura 1.7). Biblioteca este vzut de sistemul de operare ca un fiier cu extensia .llb, fiier care conine laolalt mai multe instrumente virtuale.

Exist posibilitatea deschiderii IV-urilor recent folosite cu ajutorul sgeii din dreapta opiunii Open VI. din meniul altui IV deja deschis, selectnd comanda File Open sau direct, utiliznd tastele de scurtcircuit, Ctrl+O.

1.2.3. Panoul i diagrama Windows


Panourile frontale i diagramele bloc constau dintr-o colecie de obiecte grafice, care sunt elementele de programare pentru LabVIEW. Panourile frontale conin o mare varietate de comenzi i indicatoare. Diagramele bloc conin terminalele corespunztoare comenzilor i indicatoarelor de pe panoul frontal, precum i constante, funcii, subIV-uri, structuri i legturi prin care sunt transportate datele ntre dou obiecte. Figura 1.8 prezint un panou frontal i diagrama bloc asociat, cu explicitarea principalelor elemente. 1.2.3.1. Meniul principal al panoului frontal

Att fereastra panoului frontal ct i cea a diagramei bloc au un meniu principal care conine butoane de comand i indicatoare de stare, utilizate pentru

Butonul de EXECUIE cu eroare. Acest buton nlocuiete butonul de EXECUIE i indic faptul c instrumentul virtual nu poate fi compilat deoarece conine erori. Pentru a se cunoate erorile, se apas pe acest buton i va apare o fereastr cu acestea. Butonul de EXECUIE continuu. Prin apsarea acestui buton, se comand execuia continu a instrumentului respectiv. n timpul execuiei, butonul se nlocuiete cu acesta: starea iniial. Prin apsarea acestui buton, se revine la

Butonul de Pauz / continuare: Acest buton stopeaz pt. moment execuia aplicaiei. Prin apsarea sa nc o dat, se continu execuia. Selectarea caracterelor: tipul de caracter, stilul i culoarea. Alinierea obiectelor: De aici se poate alege tipul de aliniere a obiectelor: vertical, la stnga etc. Distribuia obiectelor: Se selecteaz spaiile dintre obiecte, compresia etc. Reordonarea obiectelor: Se pot realiza grupuri de obiecte i se poate schimba ordinea acestora.

Figura 1.8. Panoul frontal i diagrama bloc cu explicitarea principalelor elemente

controlul instrumentului virtual. La un moment dat, doar unul dintre cele dou meniuri este activ, depinznd de fereastra n care se lucreaz. n partea de sus a panoului frontal apare urmtorul meniu principal:

1.2.3.2. Meniul principal al diagramei bloc

Conine n mare parte elementele cuprinse n meniul panoului frontal dar, n plus, conine patru unelte pentru depanare:

Butonul de EXECUIE (RUN). Prin apsarea acestui buton se lanseaz n execuie instrumentul virtual.

dac instrumentul virtual este programul principal dac IV-ul este o subrutin

n continuare se vor prezenta doar cele patru opiuni de depanare, existente n plus n meniul principal al diagramei bloc.

Cnd un IV este n execuie, apare butonul de STOP . Prin apsarea acestui buton, se oprete imediat execuia instrumentului virtual curent. Not: Este de dorit evitarea utilizrii butonului de STOP pentru oprirea execuiei unei aplicaii i se prefer prevederea n aplicaie a unor condiii care s controleze oprirea acesteia. Dac se procedeaz la oprirea controlat a aplicaiei, se va ti n orice moment care e starea aplicaiei. De exemplu se poate programa oprirea aplicaiei prin plasarea unui buton de STOP pe panoul frontal al acesteia.

Butonul de execuie cu evideniere. Prin apsarea acestui buton se activeaz execuia cu evideniere. n acest mod, butonul se schimb n acesta: i execuia este ncetinit cu vizualizarea ntregului transfer de date ntre noduri.

Butonul de salt peste: Prin apsarea acestui buton se activeaz modul de execuie pas-cu-pas care execut IV-ul nod cu nod. El este afiat interminet la ntlnirea fiecrui nod, ceea ce denot care nod urmeaz s fie executat.

Prin apsarea nc o dat a acestui buton, se sare peste o bucl sau un subIV. Prin salt peste nodul respectiv, se execut acel nod, fr a se trece cu execuia prin acel nod care poate conine alte elemente (exemplu Temperature.iv).

Butonul de salt n: Asemntor cu cel precedent. Prin apsarea acestuia ns, se intr n respectivul nod i se execut buclele sau subIV-urile pascu-pas. Butonul de salt afar: Asemntor, cu deosebirea c acesta sare n afara nodului respectiv. Prin apsarea acestuia, se termin rapid (nu pas-cupas) execuia nodului respectiv i se sare n afara acestuia, trecndu-se la nodul urmtor.

Indicatorul de atenionare: Acesta exist cnd apare o problem care ns nu face ca IV-ul s nu fie executabil. Acesta poate fi activat sau dezactivat din meniul Edit.

1.2.4. Meniul principal


Meniul File
New VI Creeaz un nou IV New Creeaz un nou IV i deschide panoul su frontal Open Deschide un IV existent Close nchide fereastra activ Close All nchide toate IV-urile Save Salveaz IV-ul curent Save As Salveaz IV-ul curent sub un nou nume Save All Salveaz toate IV-urile Save with Options Salveaz o copie a IV-ului curent Revert Se rentoarce la ultima variant salvat a IV-ului Page Setup Configureaz pagina pentru tiprire Print Tiprete IV-ul curent Print window Tiprete fereastra activ VI Properties Proprietile IV-ului curent Recently Opened Files Lista fiierelor deschise recent Exit Prsete LabVIEW

Undo Window Size Revenire la dimensiunea anterioar Redo Refacere Cut terge obiectul selectat i l plaseaz n Clipboard Copy Copiaz obiectul selectat i l plaseaz n Clipboard Paste Aduce o copie a Clipboard-ului n fereastra activ Clear terge obiectul selectat Find Gsete Show Search Results Arat rezultatele cutrii Customize Control Personalizarea comenzii Scale Object With Panel Scaleaz un obiect dup panoul frontal Set Tabbing Order Configurarea ordinii elementelor Import Picture From File Aduce o imagine dintr-un fiier Remove Broken Wires terge conexiunile greite ntre noduri Create SubVI Crearea unui subIV Run-Time Menu Editorul meniului principal

Meniul Operate
Run Execut IV-ul curent Stop Oprete execuia IV-ului curent Suspend when called Oprete execuia cnd este apelat respectivul VI Print at completion Tiprete panoul frontal al IV-ului dup ce acesta a fost executat Log at completion Stocheaz datele dup executarea IV-ului curent Data Logging Opiuni referitoare la datele stocate Make current Values default Seteaz valorile curente ca i valori implicite pentru comenzi i indicatoare Reinitialize All to default Seteaz toate comenzile i indicatoa-rele la valorile implicite Change to run mode Comut ntre modurile RUN i EDIT

Meniul Edit

Meniul Tools
Measurement & Automation Explorer ... Msurri i automatizri Instrumentation Instrumentaia Data Acquisition Achiziia de date VI Revision History Istoria IV-ului User Name ... Numele utilizatorului Edit VI Library Editarea bibliotecii cu IV-uri Web Publishing Tool ... Unealta de publicare pe internet Advanced Comenzi avansate Options... - Opiuni

Meniul Help
Show Context Help Deschide fereastra de ajutor Lock Context Help Blocheaz fereastra de ajutor Contents and Index Coninut i Index View Printed Manuals Manuale Help for This VI Ajutor pentru IV-ul curent Examples ... Exemple Web Resources Resurse pe Internet Explain Error Explicarea erorii FlexMotion VI Online Help Activ doar dac este instalat FlexMotion IMAQ Vision ... IMAQ Vision NI-IMAQ VIs ... IV-uri IMAQ Vision ValueMotion VI Online Help ... Ajutor ValueMotion About LabVIEW Despre LabVIEW Show VI Hierarchy Arat ierarhia IV-urilor This VIs Callers Arat toate IV -urile care apeleaz IV-ul curent This Vis SubVIs SubIV-urile acelui IV Unopened VIs IV-urile care nu sunt deschise Unopened Type Defs Definiiile de tip nedeschise Breakpoints Punctele de oprire

Meniul Browse

1.2.5. Paleta de unelte (Tools Palette figura 1.9)

Unealta de operare utilizat pentru manipularea comenzilor i indicatoarelor pe panoul frontal. Unealta de poziionare utilizat pentru selectarea, deplasarea sau redimensionarea obiectelor. Unealta de etichetare utilizat pentru introducere text i etichetare. Unealta pt. executarea de conexiuni utilizat pentru a conecta obiectele din diagrama bloc.

Meniul Window
Show Panel Comut ntre fereastra panoului frontal i cea a diagramei bloc Show Functions Palette Paleta de funcii Show Tools Palette Paleta de unelte Show Clipboard - Clipboard Show Error List Lista erorilor Tile Left and Right Poziionarea ferestrelor stnga-dreapta Tile Up and Down - Poziionarea ferestrelor sus-jos Full Size Dimensiunea maxim Ferestrele curente deschise

Figura 1.9. Paleta de unelte

Unealta de afiare a meniului aparent utilizat pentru afiarea meniului specific utiliznd butonul din stnga al mouse-ului. n general acelai rezultat se obine cu butonul din dreapta al mouse-ului. Unealta de deplasare utilizat pentru deplasarea n cadrul ferestrei curente fr a utiliza bara de defilare. Unealta de marcare a punctelor de oprire marcheaz punctele de oprire pentru depanare. Unealta de testare Plaseaz un instrument de test pe panoul frontal. Utilizat n special la depanare. Unealta de copiere a culorilor copiaz culoarea pentru a o folosi n executarea desenelor. Unealta de colorare coloreaz fundalul sau textul cu culorile curente.

Figura 1.10. Paleta de comenzi

Subpaleta mrimi de intrare / ieire Subpaleta numere de referin Subpaleta comenzi dialog

1.2.6. Paleta de comenzi (Controls Palette figura 1.10)


Subpaleta comenzi clasice Subpaleta ActiveX Subpaleta comenzi de decorare Subpaleta selectare comenzi Subpaleta utilizator

Subpaleta de comenzi numerice Subpaleta de comenzi logice Subpaleta de comenzi ir de caractere i ci de fiiere Subpaleta matrice i grupuri Subpaleta de comenzi liste i tabele Subpaleta de comenzi grafice Subpaleta inele i enumerri

1.2.7. Paleta de funcii (Functions Palette figura 1.11)


Subpaleta de structuri Subpaleta numeric

Subpaleta de analiz Subpaleta de instrumente Subpaleta elemente de micare Subpaleta elemente matematice Subpaleta de comunicaie Subpaleta aplicaii de comand Subpaleta grafice i sunete Subpaleta tutorial Subpaleta generare rapoarte Subpaleta comenzi avansate Subpaleta de selectare a unui IV Subpaleta bibliotec utilizator

Figura 1.11. Paleta de funcii

Subpaleta boolean Subpaleta de iruri Subpaleta de matrice Subpaleta de grupuri Subpaleta de comparare Subpaleta de timp i dialog Subpaleta de lucru cu fiiere Subpaleta de achiziie de date Subpaleta forme de und

1.2.8. Salvarea unui IV


Salvarea unui instrument virtual se face din meniul acestuia, avnd la dispoziie patru comenzi: Save, Save As, Save All i Save with Options.
Prin utilizarea comenzii Save, instrumentul virtual este salvat sub acelai

nume i n acelai loc unde el exist deja. Dac se utilizeaz comanda Save la prima salvare a instrumentului, LabVIEW va deschide o fereastr de dialog pentru precizarea numelui fiierului i a locului unde va fi salvat. Prin utilizarea comenzii Save As, se deschide automat fereastra de dialog, indiferent dac fiierul a mai fost salvat sau nu (figura 1.12). Comanda Save All (identic cu comanda Save) va salva toate instrumentele virtuale deschise n acel moment. Comanda Save with Options permite specificarea unor opiuni suplimentare de salvare, de nivel mai avansat, cum ar fi de exemplu salvarea unui instrument

virtual pentru a putea fi utilizat sub o versiune anterioar de LabVIEW (5.0) (figura 1.13). Din acelai meniu se poate crea o nou bibliotec, cu comanda New VI Library.

Figura 1.14. Salvarea unui IV ntr-o bibliotec

1.3 Opiunile de ajutor din LabVIEW


Figura 1.12. Salvarea unui IV

Pentru a afia fereastra de ajutor, se selecteaz opiunea Help Show Context Help sau se apas tastele de scurtcircuit Ctrl+H. Cnd este plasat o unealt din paleta de unelte (Tools Palette) pe un obiect de pe panoul frontal sau din diagrama bloc, fereastra de ajutor prezint pictograma pentru subIV, funciile, constantele, comenzile i indicatoarele pentru acest obiect, precum i conexiunile i semnificaiile acestora.

Buton care comut ntre diagrama de ajutor simpl (figura 1.15) i

cea complex (figura 1.16). Diagrama de ajutor simpl prezint doar conexiunile principale ale obiectului respectiv.

Lock Help prin apsarea acestui buton, fereastra de ajutor rmne blocat, iar mutarea cursorului pe un alt obiect nu duce la schimbarea coninutului acesteia.

Figura 1.13. Fereastra de salvare cu opiuni Save with Options

Salvarea unui instrument virtual poate fi fcut direct, ntr-un director, sau ntr-o anumit bibliotec LabVIEW (fiier cu extensia .llb figura 1.14).

Butonul More help acces la documentaia electronic instalat pe calculator.

Figura 1.15. Fereastra de ajutor simpl

Figura 1.16. Fereastra de ajutor complex

1.4. Aplicaie
Se deschide instrumentul ... National Instruments\LabVIEW6\Activity\Digital Thermometer.vi (fiier creat la instalarea LabVIEW). Se exemplific utilizarea comenzilor de ncrcare i salvare a unui IV. Se lanseaz n execuie instrumentul cu comanda EXECUIE (RUN). Se utilizeaz meniul HELP.

Capitolul 2

CREAREA, EDITAREA I DEPANAREA UNUI IV


2.1. Crearea unui instrument virtual
Instrumentele virtuale au trei pri principale: panoul frontal, diagrama bloc i pictograma / conectorul. Pictograma / conectorul vor fi prezentate n capitolul urmtor.
Panoul frontal Figura 2.1. Comenzi i indicatoare Figura 2.2. Comenzi i indicatoare booleene numerice Configurarea comenzilor i indicatoarelor

Panoul frontal al unui IV este constituit ca o combinaie de comenzi i indicatoare. Prin comenzi se neleg acele elemente prin care se furnizeaz date din exterior ctre instrumentul virtual. Indicatoarele monitorizeaz datele / valorile generate de instrument. n LabVIEW exist mai multe de tipuri comenzi i indicatoare. Comenzile i indicatoarele se pot aduga pe panoul frontal utiliznd paleta de comenzi. Dac aceasta nu este vizibil, aducerea ei pe ecran se face selectnd opiunea Show Controls Palette din meniul Window.
Comenzi i indicatoare numerice

Aproape toate comenzile i indicatoarele pot fi configurate utiliznd opiunile din meniurile acestora. Meniul aparent al unei comenzi sau al unui indicator se accesea-z prin poziionarea cu mouse-ul pe obiectul respectiv i executarea unui clic dreapta.

Figura 2.3. Eticheta unei comenzi

Dou dintre cele mai utilizate obiecte numerice sunt: comanda numeric i indicatorul numeric. Pentru a introduce o nou valoare sau a modifica valoarea existent ntr-o comand numeric, pot fi utilizate fie sgeile de incrementare / decrementare din stnga comenzii, fie unealta de etichetare direct (figura 2.1).
Comenzi i indicatoare booleene

Pentru a introduce sau a monitoriza valori booleene de tip adevrat-fals (True-False) se utilizeaz comenzile i indicatoarele booleene. Obiectele booleene simuleaz ntreruptoare, butoane i LED-uri. Cele mai utilizate obiecte booleene sunt butonul, comutatorul vertical i LED-ul rotund (figura 2.2).

Diagrama bloc

Diagrama bloc este compus din noduri, terminale i legturi. Nodurile sunt elementele de execuie ale programului. Nodurile sunt analoage cu declaraiile, funciile i subrutinele din limbajele de programare clasice. Exist patru tipuri principale de noduri:

funciile; subIV-urile; structurile; nodurile de interfa cod (Code Interface Nodes CINs).

Funciile sunt noduri prefabricate pentru executarea operaiilor elementare, cum ar fi de exemplu adunarea numerelor, operaii cu fiiere de intrare / ieire sau formatarea irurilor de caractere.

SubIV-urile sunt de fapt IV-uri proiectate i create anterior i apelate din diagrama altui IV. Structurile ca de exemplu buclele For, While controleaz executarea programului. Nodurile de interfa cod sunt interfee ntre diagrama bloc i codul n C scris de utilizator. Terminalele sunt porturile prin care datele trec ntre diagrama bloc i panoul frontal pe de-o parte, i ntre nodurile diagramei bloc pe de alt parte. Terminalele sunt analoage cu parametrii i constantele din programarea n limbaj clasic. Configuraia terminalelor pentru funciile de adunare i scdere

Exist dou tipuri de terminale: terminale ale comenzilor i ale indicatoarelor i terminale ale nodurilor. Valorile pe care un operator sau un alt IV le introduce n aceste comenzi trec ctre diagrama bloc prin intermediul acestor terminale. Cnd IV-ul este terminat de a fi executat, valorile trec dinspre diagrama bloc ctre panoul frontal prin intermediul terminalelor indicatoarelor. Terminalele comenzilor i ale indicatoarelor sunt create sau terse automat n diagrama bloc n momentul n care este creat sau tears o comand sau un indicator pe panoul frontal.
Conexiunile

Conexiunile sunt cile de date ntre terminale. Acestea sunt analoage cu variabilele n limbajele de programare convenionale. Datele circul doar ntr-o direcie, de la un terminal de tip surs ctre unul sau mai multe terminale de tip destinaie. Conexiunile sunt de mai multe tipuri, n funcie de datele care circul prin ele. Legturile ntre obiecte se fac cu linii de diverse tipuri, culori i grosimi, n funcie de datele care circul ntre acestea. n figura 2.5 se prezint sintetic, tipurile de legturi ntre diverse obiecte, existente n LabVIEW.

Figura 2.5. Tipuri de conexiuni

Conexiunile ntre obiecte se fac cu butonul din stnga al mouse-lui. Pentru a conecta dou terminale ntre ele, se face clic pe primul terminal, apoi clic pe al doilea terminal. Acestea vor fi afiate intermitent n momentul n care sunt accesate cu mouse-ul. Nu este necesar meninerea apsat a butonului de mouse pe parcursul conectrii obiectelor. Cu butonul Space se schimb direcia conexiunilor. Funcia Tip strip uureaz identificarea funciilor i terminalelor nodurilor pentru interconectare. Cnd se poziioneaz cursorul n zona unui terminal, apare o mic fereastr galben n care se furnizeaz informaii asupra nodului respectiv.

Figura 2.4. Panoul frontal i diagrama bloc ale unui IV

Figura 2.6. Funcia Tip strip

Figura 2.8. Circulaia datelor n LabVIEW Vizualizarea terminalelor. Pentru uurarea executrii conexiunilor, se pot vizualiza terminalele cu opiunea Visible Items >> Terminals. Revenirea se face cu Visible Items >> Icon. n acest caz operaiile se execut de la stnga la dreapta. n primul moment sunt disponibile mrimile x, y i z, deci operaia de adunare poate fi efectuat deoarece ambele mrimi de intrare sunt disponibile, n timp ce operaia de scdere nu. Abia dup ce este efectuat adunarea i rezultatul este transferat terminalului de intrare al funciei de scdere, i prin urmare la intrarea funciei de scdere sunt toate mrimile disponibile, se poate efectua i aceast operaie.
Figura 2.7. Vizualizarea terminalelor Circulaia datelor

Principiul care st la baza execuiei unui program LabVIEW este denumit circulaia datelor. Un nod este executat doar atunci cnd datele sunt disponibile la toate terminalele sale de intrare: nodul furnizeaz datele la toate terminalele sale de ieire de ndat ce acesta a fost terminat de executat. Principiul circulaiei de date contrasteaz cu metodele convenionale de executare a programelor, unde instruciunile sunt executate n ordinea n care sunt scrise. Pentru o mai bun nelegere, s studiem comparativ dou exemple. n primul caz s considerm c avem de adunat dou numere x i y iar din rezultat s scdem un al treilea numr z. Diagrama bloc este prezentat n figura 2.8.

Figura 2.9. Ordinea executrii operaiilor

S presupunem ns c n aceeai diagram bloc, pe lng operaiile prezentate anterior mai avem de efectuat i o alt operaie: cos(a*b). Noua diagram bloc va arta ca n figura 2.9. Se pune acum problema care dintre cele dou operaii adunarea sau nmulirea va fi efectuat mai nti. n acest caz nu exist o ordine sigur a efecturii celor dou operaii.

2.2 Tehnici de editare


Crearea obiectelor

Crearea obiectelor se poate face att prin intermediul panoului frontal ct i prin intermediul diagramei bloc. De asemenea meniul nodurilor, care se acceseaz cu butonul din dreapta al mouse-lui permite crearea de comenzi, indicatoare i constante.

n LabVIEW exist dou tipuri de etichete: etichete libere i etichete asociate obiectelor. Etichetele libere pot fi plasate oriunde n spaiul panoului frontal sau a diagramei bloc. Etichetele asociate obiectelor se refer i se deplaseaz mpreun cu acestea. Pentru a crea o etichet liber se utilizeaz unealta de editare de unelte. La terminarea editrii se apas butonul de confirmare din paleta care a

aprut n meniul instrumentului virtual n momentul nceperii editrii textului. La adugarea unei comenzi sau a unui indicator pe panoul frontal al unui instrument virtual, acesta are o etichet predefinit (care se refer n special la tipul obiectului i la numrul de ordine al acestuia). Iniial textul etichetei este selectat, astfel nct prin simpla scriere a unui nou text, eticheta acestuia este nlocuit.
Selectarea i tergerea conexiunilor Figura 2.10. Crearea obiectelor

ATENIE: Dup crearea unei comenzi sau a unui indicator prin intermediul diagramei bloc, acesta poate fi ters doar din panoul frontal
Selectarea obiectelor

Se face cu unealta de poziionare. Pentru a selecta mai multe obiecte simultan, se selecteaz primul, se menine tasta Shift apsat, i se selecteaz n continuare al doilea obiect .a.m.d. Selecia multipl se poate face i ncadrnd ntr-un dreptunghi elementele dorite, tot utiliznd unealta de poziionare.
Mutarea obiectelor

Segmentul este o linie de legtur orizontal sau vertical. Punctul unde se ntlnesc dou segmente (unul orizontal cu unul vertical) se numete punct de ntoarcere. Punctul unde se ntlnesc trei sau mai multe segmente se numete jonciune. Ramura este o conexiune ntre dou jonciuni, format din dou sau mai multe segmente (figura 2.11). Selectarea conexiunilor ntre obiecte de face cu mouse-ul, executnd un clic pe legtur, n felul urmtor:
1 clic: se selecteaz segmentul dintre dou puncte de ntoarcere (figura 2.12 a); 2 clicuri: se selecteaz o ramur (figura 2.12 b); 3 clicuri: se selecteaz ntreaga conexiune (figura 2.12 c).

Se face cu mouse-ul, dup selectare. Se poate restriciona direcia de mutare a obiectelor la orizontal sau vertical, prin apsarea tastei Shift.
tergerea obiectelor

Figura 2.11. Conexiunile ntre dou obiecte

Cu tasta Delete sau cu Clear din meniul Edit, dup ce n prealabil elementele care se doresc a fi terse au fost selectate.
Multiplicarea obiectelor

Pentru a multiplica un obiect n LabVIEW se procedeaz n felul urmtor: se selecteaz obiectul original, care se dorete a fi multiplicat (pot fi selectate mai multe obiecte), se apas i se menine apsat tasta Ctrl, apoi cu unealta de poziionare (meninnd butonul din stnga al mouse-ului apsat) se translateaz obiectul dorit.
Etichetarea obiectelor

ntinderea conexiunilor

O dat efectuate conexiunile ntre dou obiecte, acestea se pot deplasa fr ca legtura dintre ele s fie afectat.

tergerea conexiunilor (eronate sau corecte) se face selectnd conexiunea respectiv cu unealta de poziionare i apoi apsnd tasta Delete. tergerea conexiunilor eronate se mai poate face global, cu ajutorul funciei Edit Remove Broken Wires (sau utiliznd tastele de scurtcircuit Ctrl+B).
Schimbarea caracterelor, stilului de text i a mrimii acestuia

Utiliznd funcia Text Settings din meniul panoului frontal sau al diagramei bloc se pot modifica dimensiunea, stilul (ngroat, nclinat ), alinierea i culoarea textului. Unealta folosit n acest scop este unealta de etichetare.
Modificarea dimensiunilor obiectelor

Dimensiunile obiectelor plasate pe panoul frontal pot fi modificate utiliznd unealta de poziionare. n momentul n care unealta este plasat pe unul din colu-rile obiectului, aceasta i modific cursorul i arat astfel: n acest moment ea va aciona ca i o unealt de redimensionare.
Alinierea, distribuirea i reordonarea obiectelor

c
Figura 2.12. Selectarea conexiunilor Conexiuni eronate

Pentru a se realiza alinierea , distribuirea sau reordonarea , se selecteaz obiectele n cauz (prin ncadrarea cu un dreptunghi folosind unealta de poziionare sau prin selecie multipl meninnd tasta Shift apsat) i se selecteaz operaia care se dorete a fi efectuat.
Copierea obiectelor ntre IV-uri sau n / din alte aplicaii

n LabVIEW conexiunile eronate sunt reprezentate cu linie ntrerupt. O conexiune eronat ntre dou blocuri poate s apar din mai multe motive. Dintre cele mai des ntlnite, amintim: tipul incorect al obiectului (comand n loc de indicator i invers), tipul incorect al datelor (numeric, boolen sau string), dimensiunea incorect a matricei sau grupului, .a.m.d. De asemenea nu trebuie confundat linia ntrerupt care semnific o eroare n efectuarea conexiunilor (figura 2.13 a) cu linia punctat verde care semnific o conexiune corect ntre dou mrimi booleene (figura 2.13 b).

LabVIEW este o aplicaie Windows i, n consecin, toate facilitile referitoare la editare, i anume copiere (Copy), tiere (Cut) i lipire (Paste) - inclusiv tas-tele de scurcircuit aferente Ctrl+C, Ctrl+X i Ctrl+V - sunt valabile. Acestea pot fi folosite n cadrul aceluiai instrument virtual, ntre dou instrumente virtuale sau chiar ntre LabVIEW i o alt aplicaie Windows care suport aceste faciliti.
Utilizarea culorilor

La iniializare, LabVIEW are un set de culori predefinit pentru fundalul panoului frontal (de obicei gri) i al diagramei bloc (de obicei alb). Utiliznd unealta de colorare i paleta de culori (figura 2.14) se pot modifica aceste culori (Background color), inclusiv culorile cu care se deseneaz (Foreground color). Selectnd csua T obiectul va deveni transparent. a b

Figura 2.13. Conexiune eronat (a) i conexiune corect (b)

Opiunea Probe este utilizat pentru a vedea o anumit valoarea care circul ntre dou obiecte, fr a fi necesar plasarea unui indicator pe panoul frontal. Plasarea unei probe se face pe conexiunea dintre dou obiecte cu unealta cores-punztoare din paleta de unelte.
Puncte de oprire Figura 2.14. Paleta de culori LabVIEW

2.3 Tehnici de depanare


Gsirea erorilor

Ca i n cazul celorlalte limbaje de programare, i n LabVIEW se pot preciza puncte de oprire (Breakpoints). Instrumentul va fi executat normal pn la ntlnirea unui punct de oprire. De aici ncolo se poate continua execuia n mod pas-cu-pas. Marcarea punctelor de oprire se va face cu . unealta corespunztoare din paleta ce unelte

n cazul n care butonul de execuie (Run) arat astfel: nseamn c instrumentul virtual nu poate fi executat din cauza existenei unor erori. Prin apsarea acestui buton va apare o list a erorilor care vor trebui nlturate.
Executarea programului cu evideniere

2.4. Noduri proprietate


Nodurile proprietate apar n diagrama bloc i corespund componentelor de pe panoul frontal; prin intermediul acestor noduri programatorul are acces la proprietile obiectelor. Proprietile definesc:
proprieti fizice: dimensiuni, culoare, poziie pe ecran; comportarea:obiectul este vizibil / invizibil, activ / inactiv la un moment dat

O tehnic de depanare a programelor n LabVIEW este execuia cu evideniere (Execution Highlight). Aceasta permite o execuie mult ncetinit a instrumentului, cu evidenierea valorilor care circul ntre dou obiecte. din meniul diagramei Executarea cu evideniere se face apsnd butonul bloc, acesta preschimbndu-se n ceea ce semnific faptul c a fost activat executarea cu evideniere. Prin apsarea nc o dat pe acest buton, se revine la modul de executare normal.
Executarea pas-cu-pas a unui IV

(operatorul nu poate interaciona cu el), afiare intermitent (blink), formatul i precizia valorii numerice reinute, tipul de afiare utilizat pentru o component tip ir de caractere etc. Valoarea unei proprieti poate s fie citit sau modificat.

Pentru a avea acces la proprietile unui obiect, se creeaz un nod proprietate. Aciunea de creare a unui nod proprietate se poate executa pe panoul frontal sau n diagrama bloc:
Pe panoul frontal:

n scopul executrii pas cu pas a unui instrument virtual, exist trei comenzi distincte: Salt n (Step Into) salt peste (Step Over) i salt afar (Step Out) . Pentru a porni execuia n mod pas-cu-pas se apas unul din butoanele Salt n sau Salt peste. Primul obiect care va fi executat va fi astfel marcat. Prin apsarea nc o dat a unuia din cele dou butoane se va executa obiectul respectiv, iar urmtorul obiect va fi marcat .a.m.d. Dac la un moment dat obiectul marcat este un subinstrument virtual, prin apsarea butonului Salt n se va intra n interiorul acestuia, i subIV-ul respectiv va fi executat tot pas-cu-pas. Dac se apas Salt peste se va executa normal subIV-ul respectiv i se va continua execuia pas-cu-pas n programul principal.
Probe

Din meniul aparent asociat elementului respectiv se selecteaz opiunea Create Property Node (figura 2.15).

Figura 2.15. Crearea unui nod proprietate

Figura 2.16. Gsirea unui nod proprietate

n diagrama bloc se insereaz un nod proprietate; pentru localizarea acestuia, se alege din meniul aparent opiunea Find Property Nodes (figura 2.16).
n diagrama bloc:

Se selecteaz din meniul aparent al terminalului elementului respectiv opiunea Create Property Node (figura 2.17). Nodul proprietate este inserat n diagrama bloc n vecintatea terminalului. Nodul proprietate mo tene te eticheta comenzii sau a indicatorului la care se refer. Se poate modifica numele etichetei nodului proprietate dar se recomand s se utilizeze eticheta obiectului referit, pentru a nu se crea confuzii referitoare la apartenena proprietii.

Figura 2.17. Crearea unui nod proprietate n diagrama bloc

Figura 2.18. Crearea mai multor proprieti n cadrul unui nod

Nodul proprietate afieaz la nceput (chiar dup ce a fost creat) un singur terminal, prin care se permite accesul la o singur proprietate; numele proprietii este afiat n csua corespunztoare terminalului. S-a menionat

anterior c un obiect posed mai multe proprieti; cu un singur nod proprietate se pot accesa mai multe proprieti ale obiectului referit astfel c trebuie adugate terminale supli-mentare pentru fiecare proprietate necesar (figura 2.18). Nodul proprietate este redimensionabil: se adaug terminale prin mrirea nlimii nodului, cu unealta de editare. Adugarea sau tergerea terminalelor se realizeaz i prin meniul aparent asociat nodului, cu comenzile Add Element respectiv Remove Element (figura 2.19). Nu este obligatoriu ca fiecare terminal s indice o proprietate distinct, deoarece mai multe terminale se pot referi la aceeai proprietate. Selectarea proprietilor dorite se face cu unealta de operare (figura 2.20).

Figura 2.20. Selectarea proprietilor n cadrul unui nod

2.5. Aplicaii propuse


1. S se creeze un IV care s compare dou numere specificate prin comenzi pe panoul frontal. Dac primul numr este mai mare sau egal cu al doilea, s se aprind un led pe panoul frontal. 2. S se genereze un numr aleator ntre 0 i 10. Acest numr s se mpart la o valoare specificat prin intermediul panoului frontal i s se afieze rezultatul. Dac mpritorul este zero, s se aprind un led rou pe panoul frontal care s avertizeze mprirea la zero.

Figura 2.19. Meniul aparent asociat unui nod proprietate

3.2. Crearea unei pictograme si a unui conector Capitolul 3


Un IV care va fi utilizat ca i un subIV are nevoie de o pictogram prin care s fie reprezentat n diagrama bloc a instrumentului care l apeleaz. Acest subIV trebuie s aib de asemenea un conector care s permit transferul de date nspre i dinspre IV-ul ierarhic superior.

CREAREA UNUI SubIV


3.1. Idei de baz
Cheia crerii aplicaiilor LabVIEW o reprezint nelegerea i utilizarea naturii ierarhice a instrumentelor virtuale. Aa c, dup ce se creeaz un IV, acesta poate fi folosit ca un subIV n diagrama bloc a unui instrument virtual ierarhic superior. Dac diagrama bloc conine un numr mare de pictograme, acestea se pot grupa n IV-uri ierarhic inferioare, pentru a simplifica diagrama bloc. Aceast abordare modular face ca aplicaiile LabVIEW s fie uor de depanat, neles i ntreinut. SubIV-urile sunt similare cu funciile sau subrutinele din limbajele de programare clasice. Urmtorul tabel prezint analogia ntre subIV-uri i subrutine.
Tabelul 3.1

Apelarea funciei n programul Codul funciei principal function medie (x, y, m) main { { m = (x + y) / 2; medie (a, b, r); } } Diagrama bloc a SubIV-ului Apelarea IV-ului

Figura 3.1. Panoul frontal i diagrama bloc pentru instrumentul panta.vi Pictograma

Fiecare IV are o pictogram implicit care este prezentat n colul din dreapta-sus a panoului frontal i a diagramei bloc.

Exemplu funcia pant

Ca un exemplu, s considerm un IV care calculeaz panta dintre dou puncte. Panoul frontal i diagrama bloc sunt prezentate n figura 3.1. Pentru a utiliza acest IV ca i un subIV, trebuie create pentru acesta o pictogram i un conector.

Figura 3.3. Editarea unei pictograme Figura 3.2. Meniul pentru editarea unei pictograme Tabelul 3.2

Pentru IV-uri, pictograma implicit conine logo-ul LabVIEW i un numr care reprezint cte noi IV-uri au fost deschise n actuala sesiune de lucru cu LabVIEW. Pictograma respectiv poate fi editat utiliznd un editor specializat, denumit Icon Editor. Pentru a activa editorul de pictograme, se folosete meniul aparent al pictogramei, din care se selecteaz opiunea Edit Icon, dup cum se prezint n figura 3.2 . Va apare fereastra din figura 3.3. Cu ajutorul uneltelor din partea stng se poate edita pictograma din fereastra de editare. Editorul este unul la nivel de pixel, foarte asemntor cu utilitarul Paint (Paintbrush) din Windows, dar cu mai puine faciliti. Pictograma poate fi editat n format monocrom, cu 16 culori sau cu 256 de culori. Formatul implicit al editorului este alb-negru. Din raiuni de portabilitate, se recomand crearea de pictograme alb-negru. Uneltele utilizate la editarea pictogramelor sunt prezentate n tabelul 3.2, mpreun cu funcia fiecruia:

creion linie selector culoare umplere dreptunghi

deseneaz i terge pixel cu pixel deseneaz linii drepte. Prin folosirea tastei Shift se pot desena linii verticale, orizontale sau diagonale selecteaz culoarea de desenare, prelevnd-o din pictogram umple o suprafa nchis cu culoarea curent deseneaz un dreptunghi cu culoarea curent

dreptunghi deseneaz un dreptunghi cu culoarea curent i l umple cu culoarea fundalului plin selectare text culoare / /fundal selecteaz o parte a pictogramei pentru mutare, clonare sau tergere permite scrierea textului n pictogram. afieaz culoarea curent de desenare i culoarea fundalului.

La terminarea desenului se confirm acceptarea acestuia prin apsarea tastei OK.

Conectorul

Conectorul reprezint interfaa programabil pentru un IV. Pentru transferul datelor ntre subIV-uri este necesar ca fiecrei comenzi sau fiecrui indicator necesar al instrumentului virtual considerat ca i subrutin, s i se atribuie cte un terminal. n prima etap se stabilete numrul mrimilor de intrare i de ieire (comenzi i indicatoare) care sunt necesare a fi transferate. n funcie de acesta se stabilete numrul de terminale necesare pentru conector.

Figura 3.5. Panoul frontal cu conectorul Selectarea i modificarea modelelor terminalelor

Este posibil ns ca utilizatorul s nu fie interesat n transferul tuturor mrimilor sau s doreasc o alt configuraie a terminalelor. Pentru aceasta este pus la dispoziie o ntreag palet de configuraii de terminale, mergnd pn la un numr maxim de 28. Acesta este numrul maxim de mrimi care pot fi transferate ntre dou IV-uri, utiliznd terminalele. Pentru transferul mai multor valori, este necesar o grupare a acestora nainte de transmitere. Accesul la paleta de configuraii pentru terminale se face tot din meniul aparent al pictogramei din dreapta-sus, selectnd comanda Patterns (figura 3.6).
Figura 3.4. Meniul pentru editarea unui conector Asocierea terminalelor pentru comenzi i indicatoare

Pentru definirea unui conector se selecteaz comanda Show Connector din meniul aparent al pictogramei (figura 3.4). Rezultatul acestei operaii este prezentat n figura 3.5 n mod implicit, LabVIEW alege un model convenabil de conector, care s poat acoperi numrul total de comenzi i de indicatoare. n plus, modelul ales este corespunztor. De exemplu pentru IV-ul ales drept model, panta.vi, IV care conine patru comenzi i un singur indicator, LabVIEW a ales un model de conector cu patru terminale n partea stng, corespunztoare celor patru comenzi, i un terminal n partea dreapt, corespunztor indicatorului (vezi figura 3.5).

Odat stabilit numrul i configuraia terminalelor, este necesar realizarea corespondenei ntre terminale i comenzi / indicatoare. Realizarea unei astfel de corespondene se face pe panoul frontal, cu ajutorul uneltei de executare a conexiunilor n trei etape:
se selecteaz terminalul dorit din conector (figura 3.7. a); se selecteaz comanda / indicatorul de pe panoul frontal (figura 3.7. b); se valideaz operaia prin executarea unui clic n spaiul panoului frontal

(figura 3.7. c). Prin efectuarea celor trei operaii s-a realizat o coresponden ntre terminalul din stnga-sus i comanda X1 de pe panoul frontal. n mod analog se realizeaz corespondenele pentru celelalte terminale.

3.3. Proprietile unui instrument virtual


Configurarea proprietilor unui instrument virtual utiliznd comanda File VI Properties... (sau tastele de scurtcircuit Ctrl+I) reprezint o etap opional n realizarea unui IV (figura 3.8).

Figura 3.6. Paleta de configuraii pentru terminale

Figura 3.8. Meniul pentru configurarea proprietilor unui IV

Prin aceast comand devin accesibile o serie de proprieti care pot fi configurate de programator, i anume:
configurri generale; utilizarea memoriei; documentaie; istoricul revizuirilor; securitate; configurarea ferestrei; dimensiunea ferestrei; execuia; opiuni de tiprire. Fereastra de configurare a proprietilor unui instrument virtual este prezentat n figura 3.9.

c
Figura 3.7. Stabilirea corespondenei ntre terminale i comenzi / indicatoare

n cazul n care s-a comis o eroare (conectare greit), exist posibilitatea anulrii acelei corespondene. Aceasta se face din meniul aparent al pictogramei (figura 3.4) prin selectarea comenzii Disconnect This Terminal (pentru deconectarea unui singur terminal) sau Disconnect All Terminals (pentru deconectarea tuturor terminalelor).

n continuare va fi prezentat drept exemplu opiunea de realizare a documentaiei (Documentation). n fereastra VI Description (figura 3.10) se poate scrie un text referitor la scopul acelui instrument, eventual formula de calcul. Acest text va fi vizibil n fereastra de ajutor (Show Context Help) dup cum se va vedea n continuare.

expres a utilizatorului. Pentru aceasta se folosete comanda Description and Tip... care se gsete n meniul aparent al fiecrei comenzi sau fiecrui indicator de pe panoul frontal (figura 3.11).

Figura 3.11. Meniul unei comenzi / al unui indicator. Comanda Description and Tip... Figura 3.9. Opiuni disponibile la configurarea proprietilor unui IV

Figura 3.10. Realizarea documentaiei unui instrument virtual

De asemenea, pentru o mai buna informare a utilizatorului, este necesar i precizarea semnificaiilor comenzilor i a indicatoarelor. Evident, acest lucru se poate face, sumar, prin intermediul etichetelor acestora. Dar, n multe situaii, spaiul alocat etichetei se poate dovedi insuficient, sau, explicaia nu este necesar s fie vizibil permanent, fiind suficient s fie afiat la cererea

Figura 3.12. Explicaii referitoare la o comand / indicator

n fereastra care apare (figura 3.12) se pot scrie explicaii referitoare la comanda/ /indicatorul respectiv. Aceste explicaii vor fi afiate utilizatorului la utilizarea meniului de ajutor (Show Context Help).

Reamintim c explicaiile pentru acest IV au fost realizate utiliznd meniul din figura 3.10.

3.4. Utilizarea unui IV ca un subIV


Orice instrument virtual care are o pictogram i un conector poate fi utilizat ca i subinstrument virtual ntr-o alt aplicaie. Conceptul de subinstrument virtual este asemntor noiunii de subrutin din limbajele de programare clasice. Apelarea unui IV dintr-un alt IV se face selectnd comanda Select a VI... din paleta de funcii a diagramei bloc (figura 3.13). Pictograma care va fi plasat n diagrama bloc reprezint de fapt apelul acelui subIV. Instrumentele virtuale apelate de IV-ul principal nu vor fi stocate n memorie. Ele vor fi apelate i executate la momentul oportun.

Figura 3.14. Meniul de ajutor (Show Context Help)

Figura 3.13. Apelarea unui subIV

Tipuri de conexiuni

Dup realizarea sau n timpul operaiei de atribuire a terminalelor unor comenzi / / indicatoare, programatorul poate stabili tipul de conexiune n felul urmtor:
necesar recomandat opional

Aceasta se realizeaz din meniul pictogramei, selectnd comanda This Connection Is... (figura 3.15)

Printr-un dublu clic pe pictograma respectiv, subIV-ul este deschis i se poate interveni asupra panoului su frontal sau asupra diagramei bloc. Dac subIV-ul respectiv este apelat de mai multe ori, schimbrile efectuate vor fi vizibile la fiecare apelare a subIV-ului. Totui, acestea rmn doar n memorie i nu vor deveni definitive dect doar atunci cnd subIV-ul este salvat pe disc.
Comanda de ajutor Show Context Help.

Comanda de ajutor se activeaz din meniul Help Show Context Help. O dat activat aceast comand, la deplasarea uneltei de editare deasupra unui nod, n fereastra de ajutor sunt prezentate informaii detaliate despre acesta. n figura 3.14 este prezentat fereastra de ajutor a IV-ului panta.vi.

Figura 3.15. Configurarea tipului de conexiune

n cazul n care o conexiune este definit ca i necesar (Required) i ea nu este conectat n cazul n care IV-ul este apelat ca i un subIV, va fi semnalat o eroare i IV-ul principal nu va putea fi executat. n cazul n care o conexiune este definita ca i recomandat (Recommended), la executarea IV-ului principal va fi semnalat o atenionare (Warning) n cazul n care conexiunea nu este folosit. Dac ns este definit ca i opional (Optional), nu va fi semnalat n nici un fel faptul c aceasta nu este utilizat.

Figura 3.17. Crearea unui subIV dintr-o selecie

3.5. Crearea unui subIV dintr-o selecie


Crearea unui subIV se poate face i direct, cu comanda Edit Create SubVI (figura 3.16). Aceasta se poate face n momentul n care configuraia unui instru-ment devine prea complicat sau, ori de cte ori se dorete acest lucru.

Figura 3.16. Meniul pentru crearea unui subIV dintr-o selecie

Rezultatul acestei operaii este prezentat n figura 3.17. SubIV-ului creat n acest mod, LabVIEW i atribuie pictograma implicit, iar comenzile i indicatoarele sunt atribuite n mod automat terminalelor.

Capitolul 4

Apoi, cu ajutorul mouse-ului se selecteaz zona de cod care se dorete a fi introdus n interiorul buclei. La eliberarea butonului de la mouse, rama buclei While va ncadra zona de cod selectat, cum se prezint n figura 4.2.

BUCLE. REGITRI DE DEPLASARE. CONVERSIE NUMERIC


Circulaia datelor n LabVIEW este controlat de ctre structuri. LabVIEW dispune de patru tipuri de structuri pentru controlul datelor. Acestea sunt: bucla While, bucla For, structura de tip caz (Case) i structura de tip secven (Sequence). n acest capitol vor fi prezentate dou din cele patru tipuri de structuri, i anume: bucla While i bucla For, precum i noiunea de regitri de deplasare.

Figura 4.2. Selectarea zonei de cod pentru bucla While

Bucla While (figura 4.3) este o ram redimensionabil. n plus fa de elementele deja selectate, n interiorul buclei While pot fi adugate i alte elemente, utiliznd principiul drag&drop.

4.1. Bucla While


O bucl While repet de mai multe ori o secven de cod din diagrama bloc a instrumentului virtual. Plasarea unei bucle While ntr-o diagram bloc se face prin selectarea acesteia din subpaleta Structures a paletei Functions (figura 4.1.). Figura 4.3. Bucla While

Figura 4.1. Subpaleta de structuri

Bucla While repet codul din interiorul ei pn cnd valoarea boolean transmis terminalului condiional ia valoarea FALS. IV-ul verific starea mrimii de intrare n terminalul condiional la fiecare terminare a executrii unui ciclu complet al buclei. Astfel, bucla While va fi executat cel puin o dat, chiar dac valoarea transmis terminalului condiional are valoarea FALS chiar de la nceput. Terminalul iterativ reprezint o mrime care furnizeaz numrul iteraiei curente. Valoarea iniial a terminalului iterativ este zero (n timpul executrii primei iteraii, terminalul iterativ are valoarea zero). O bucl While este echivalent cu urmtorul pseudo-cod: Execut Execut diagrama din interiorul buclei Att timp ct condiia este adevrat

eliberat sau nu. Aceast facilitate este folosit n special la oprirea buclelor de tip While.

Blocheaz la eliberare

Figura 4.4. Exemplu de bucl While

Modific mrimea de comand doar la eliberarea butonului de la mouse. n momentul n care IV-ul l citete nc o dat, acesta revine la starea iniial. Aciunea garanteaz cel puin o valoare nou.

Blocheaz pn la eliberare

n exemplul prezentat n figura 4.4, bucla While este executat att timp ct rezultatul nmulirii este mai mare sau egal cu 5.

4.2. Aciunea mecanic a comutatoarelor booleene


LabVIEW permite modificarea aciunii mecanice a comutatoarelor booleene. Posibilitile de configurare a comutatoarelor booleene sunt prezentate n continuare:

Modific mrimea de comand la apsarea cu mouse-ul pe buton i menine valoarea pn cnd IV-ul citete mrimea de comand nc o dat sau se elibereaz butonul de la mouse, depinde care din aceste evenimente are loc ultimul.

4.3. Regitri de deplasare


Regitrii de deplasare sunt disponibili att pentru buclele While ct i pentru buclele For. Regitrii de deplasare se utilizeaz pentru transferul datelor de la o iteraie ctre iteraia urmtoare. Regitrii de deplasare se pot crea utiliznd meniul buclelor. Meniul poate fi accesat prin clic dreapta pe marginea din stnga sau din dreapta a ramei buclei respective. Din acest meniu se selecteaz comanda Add Shift Register. Rezultatul este prezentat n figura 4.5.

Comut la apsare

Schimb mrimea de comand la fiecare apsare a butonului cu unealta de poziionare. Aceast aciune nu este influenat de ct de des IV-ul citete mrimea de comand.

Comut la eliberare

Modific mrimea de comand doar la eliberarea butonului. Aceast aciune de asemenea nu este influenat de ct de des IV-ul citete mrimea de comand.

Comut pn cnd e eliberat

Figura 4.5. Adugarea regitrilor de deplasare la o bucl While

Modific mrimea de comand la apsarea pe buton i reine aceast valoare pn ce se elibereaz butonul de la mouse, moment n care mrimea de comand revine la starea iniial. Aceast aciune de asemenea nu este influenat de ct de des IV-ul citete mrimea de comand.

Blocheaz la apsare

Modific mrimea de comand la apsarea pe buton, iar acesta reine valoarea respectiv pn cnd IV-ul l citete nc o dat, moment n care revine la starea iniial, indiferent dac butonul de la mouse a fost

Un registru de deplasare conine o pereche de terminale corespondente, situate n opoziie, unul pe partea dreapt iar cellalt pe partea stng a ramei buclei. Terminalul din dreapta memoreaz valoarea la sfritul iteraiei. Valoarea este rotit la sfritul iteraiei respective, astfel nct ea va apare n terminalul din stnga la nceputul iteraiei urmtoare. Principiul este ilustrat n figura 4.6.

Figura 4.7. Adugarea unui element la un registru de deplasare

Figura 4.6. Principiul de lucru al regitrilor de deplasare

Un registru de deplasare poate lucra cu orice tip de date: numeric, boolean, ir de caractere, matrice, .a.m.d. Registrul de deplasare i adapteaz automat tipul de date la tipul primei mrimi legate la acest registru. O facilitate important este aceea c regitrii de deplasare pot readuce n iteraia curent, rezultate nu numai ale iteraiei precedente, ci i ale altor iteraii, anterioare. Aceast facilitate este deosebit de util atunci cnd se fac medieri ale datelor. Pentru a putea accesa valori i rezultate din iteraii anterioare, este necesar s se creeze terminale adiionale n partea din stnga a buclei. Acestea se obin din acelai meniu, prin selectarea comenzii Add Element (figura 4.7). Lund ca exemplu cazul prezentat n figura 4.8, prin adugarea a trei elemente prii din stnga a ramei buclei, se pot accesa valori din ultimele trei iteraii.

Figura 4.8. Registru de deplasare cu mai multe intrri

Iniializarea regitrilor de deplasare

Pentru iniializarea unui registru de deplasare cu o anumit valoare, este necesar ca aceast valoare s fie legat la registrul de deplasare n afara buclei, dup cum este prezentat n figura 4.9. Dac registrul de deplasare nu este iniializat, valoarea iniial a acestuia va fi valoarea implicit corespunztoare tipului de date respectiv, i anume: pentru tipul boolean valoarea iniial va fi FALS, pentru tipul de date numeric valoarea iniial va fi zero, .a.m.d. De remarcat este faptul c LabVIEW nu pierde ultimele valori stocate n regitri de deplasare la finalul unei execuii a IV-ului. tergerea valorilor se face doar la nchiderea IV-ului respectiv i tergerea acestuia din memorie. Cu alte cuvinte, dac registrul de deplasare nu este iniializat cu o anumit

valoare (cum s-a prezentat anterior), la o reexecutare a acestuia, registrul de deplasare va considera ca i valoare iniial ultima valoare din precedenta execuie.

Figura 4.10. Apelarea unei bucle For

Figura 4.9. Iniializarea registrilor de deplasare

4.4. Bucla For


Bucla For repet o parte din codul diagramei bloc de un numr predeterminat de ori. Pentru realizarea unei bucle For se selecteaz opiunea For Loop din subpaleta Structures a paletei Functions (figura 4.10). Apoi se ncadreaz poriunea de cod care se dorete a fi repetat.

n LabVIEW bucla For este reprezentat printr-un chenar redimensionabil. Bucla For are dou terminale: terminalul de numrare (terminal de intrare) i terminalul iteraie (terminal de ieire). Terminalul de numrare precizeaz de cte ori va fi executat bucla respectiv. Terminalul iteraie conine un numr care precizeaz de cte ori a fost executat bucla pn n acel moment.

Figura 4.11. Exemplu de IV cu bucl For

Diferena ntre bucla For i bucla While este aceea c bucla For este executat de un numr predeterminat de ori, n timp ce bucla While se oprete din execuie n momentul n care condiia de execuie devine FALS. Bucla For este echivalent cu urmtorul pseudo-cod: For i = 1 to N-1 Execut diagrama din interiorul buclei Exemplul din figura 4.11 prezint o bucl For care genereaz 50 de numere aleatoare i reprezint grafic punctele obinute.

palet, din care se va selecta tipul de reprezentare dorit. n figura 4.12 este prezentat meniul unei comenzi, meniu apelat din diagrama bloc.

4.5. Conversia numeric


LabVIEW poate reprezenta numerele n diferite formate, cum ar fi: ntregi (octet, cuvnt sau lung) sau n virgul mobil (precizie simpl, dubl sau extins). Tabelul 4.1 sintetizeaz toate tipurile de formate numerice pe care le suport LabVIEW.
Tabelul 4.1 Tipul de date ntreg pe 8 bii, cu semn ntreg pe 16 bii, cu semn ntreg pe 32 bii, cu semn ntreg pe 8 bii, fr semn ntreg pe 16 bii, fr semn ntreg pe 32 bii, fr semn Virgul mobil, precizie simpl (32 de bii) Virgul mobil, precizie dubl (64 de bii) Virgul mobil, precizie extins (80 de bii) Complex, virgul mobil, precizie simpl (64 de bii) Complex, virgul mobil, precizie dubl (128 de bii) Complex, virgul mobil, precizie extins (160 de bii) Prescurtarea Comanda I8 I16 I32 U8 U16 U32 SGL DBL EXT CSG CDB CXT Figura 4.12. Stabilirea formatului numeric

La plasarea unei comenzi sau a unui indicator pe panoul frontal, formatul implicit ales de LabVIEW este n virgul mobil cu precizie dubl. Pentru a schimba modul de reprezentare al unei mrimi, din meniul aparent corespunztor acesteia se selecteaz opiunea Representation. Va aprea o

Un meniu asemntor, care conine de asemenea opiunea Representation se poate obine i din panoul frontal. n cazul n care este nevoie ca n timpul execuiei unui instrument s se fac o conversie a tipului de format numeric, se va apela la funciile de conversie grupate n subpaleta Numeric Conversion a paletei de funcii (figura 4.13). Dac sunt legate mpreun dou terminale care au un format diferit de valori numerice, LabVIEW va face automat conversia uneia dintre cele dou valori, pentru a le aduce la acelai format. Pentru a evidenia care dintre cele dou valori a fost convertit, este plasat un punct n dreptul legturii respective. n exemplul prezentat n figura 4.14, dac se face o legtur ntre o mrime al unei bucle For de comand n dubl precizie i terminalul de numrare (care este o mrime de tip long integer), acea mrime de comand va fi convertit n formatul long integer iar n dreptul terminalului de numrare al buclei For va apare un punct gri.

Precizare: La conversia numerelor din format virgul mobil n format ntreg, IV-ul rotunjete la cel mai apropiat ntreg. Mrimile de tip x.5 sunt rotunjite ntotdeauna la ntregul par cel mai apropiat. De exemplu 2.5 este rotunjit la 2 iar 3.5 este rotunjit la 4.

Figura 4.13. Subpaleta de conversie numeric

Figura 4.14. Conversia automat a mrimilor numerice

Capitolul 5

elementele componente ale acestuia. Selectarea unui cadru de grup se face din paleta Array&Cluster, selectnd opiunea Cluster, ca n figura 5.2. Rezultatul este plasarea unui cadru de grup pe panoul frontal (figura 5.3).

GRUPURI
Figura 5.3. Cadrul de grup pe panoul frontal

5.1. Elemente generale. Crearea grupurilor


Un grup (cluster) este o structur de date care combin unul sau mai multe tipuri de date ntr-un nou tip. Un grup LabVIEW poate fi imaginat ca i un fascicul, asemntor unui cablu telefonic cu mai multe fire (figura 5.1). Fiecare fir al cablului reprezint un element distinct al grupului. Figura 5.1. Imaginea unui grup Componentele care formeaz un grup pot avea tipuri diferite, de exemplu se pot combina n acelai grup o mrime de tip boolean, cu o mrime de tip ir de caractere i cu o mrime de tip ntreg. Rezultatul va fi un nou tip de date care va putea fi manipulat n continuare ca un tot unitar. Un grup n LabVIEW este asemntor cu datele de tip nregistrare (record) din Pascal sau cu structurile din C.

Dimensiunea cadrului poate fi modificat cu ajutorul mouse-ului. n interiorul grupului pot fi plasate orice fel de componente, care n mod obinuit sunt plasate pe panoul frontal. Singura condiie este ca acele componente care vor fi introduse ntr-un grup s fie sau toate de tip comand, sau toate de tip indicator. n cadrul aceluiai grup nu se pot combina comenzi cu indicatoare. Dac se ncearc de exemplu plasarea unui indicator ntr-un grup care conine doar comenzi, indicatorul va fi n mod automat transformat n comand. Tipul grupului (comand sau indicator) este dat de prima component care este plasat n cadrul acestuia. Un exemplu de grup cu 5 comenzi este prezentat n figura 5.4.

Figura 5.4. Exemplu de grup cu 5 elemente


Figura 5.2. Selectarea unui cadru de grup

5.2. Crearea grupurilor de constante n diagrama bloc.


Crearea unui grup (comand sau indicator) n panoul frontal din LabVIEW este oarecum asemntoare cu crearea unei matrice, n sensul c nti se creeaz cadrul grupului (cluster shell) pentru ca mai apoi s se adauge Pentru a crea un grup de constante n diagrama bloc se utilizeaz acelai procedeu ca i n cazul crerii unui grup pe panoul frontal. Se selecteaz

opiunea Cluster Constant pentru a se crea cadrul grupului, dup care se adaug n aceasta elementele dorite.

Figura 5.5. Crearea unui grup de constante

Figura 5.6. Crearea unui grup de constante cu structur dat

5.3. Ordinea elementelor ntr-un grup


Dac exist deja creat un grup de tip comand sau indicator, din meniul aparent al acestuia prin selectarea comenzii Create Constant se poate realiza un grup de constante de acelai tip (cu aceleai elemente componente). Dac se aplic aceast metod asupra unui indicator, constanta va fi legat automat de acel indicator (figura 5.6). n cazul manipulrii datelor de ctre LabVIEW, nu numai tipul datelor dintrun grup are importan, ci i ordinea acestora. Componentele unui grup au o anumit ordine logic, ordine care nu depinde de poziia acestora n cadrul grupului. Prima component plasat n cadru poart indicele 0 (zero), urmtoarea component adugat va avea indicele 1, ... .a.m.d. n cazul n care se terge o component dintr-un grup, numerotarea acestora se adapteaz automat. Schimbarea ordinii componentelor ntr-un grup se face selectnd din meniul aparent al acestuia opiunea Reorder Controls In Cluster ... (figura 5.7.)

Figura 5.8. Ordinea componentelor ntr-un grup

Figura 5.7. Schimbarea ordinei componentelor ntr-un grup n acest moment meniul ferestrei curent se va schimba i va arta astfel:

n continuare se va prezenta un exemplu din care rezult importana pe care o are ordinea componentelor ntr-un grup. Considerm grupul definit anterior, care conine 5 componente: numeric, boolean, string, path i boolean (OK). Aceasta este i ordinea componentelor n cadrul grupului. Plecnd de la acest grup, crem un altul, identic cu acesta (inclusiv ordinea componentelor), dar cu statut de indicator. n diagrama bloc putem executa o legtur direct ntre cele dou grupuri (figura 5.9).

iar pe panoul frontal al grupului va fi afiat ordinea componentelor (figura 5.8). Pe fond alb este afiat poziia curent a componentei n cadrul grupului iar pe fond negru este afiat noua poziie, dup efectuarea reordonrii. Pentru a modifica indicele unei anumite componente din grup, se scrie noul indice n csua corespunztoare din meniul ferestrei (din cmpul Click to set to), apoi se selecteaz componenta. n acelai timp se vor schimba i indicii celorlaltor componente, automat. Salvarea noii ordini a componentelor se face cu butonul . Pentru a se reveni la starea iniial se apas .

Figura 5.9. Conectarea a dou grupuri cu aceeai structur

Dac ns, n primul grup schimbm ordinea componentelor 2 i 3 ntre ele (grupul indicator rmnnd identic cu cel din primul caz), observm c legtura dintre cele dou grupuri (comand i indicator) devine ntrerupt, semn c exist o eroare (figura 5.10). Ca urmare cele dou grupuri nu sunt

corespondente, cu toate c ele conin aceleai componente, doar ordinea lor n cadrul grupului este alta.

Figura 5.11. Utilizarea grupurilor pentru transmiterea datelor

Figura 5.10. Conectarea a dou grupuri cu ordine diferit a elementelor - imposibil

De asemenea n unele cazuri este necesar un numr mai mare de terminale. Toate aceste aspecte se pot rezolva utiliznd grupurile. Se pot grupa astfel mai multe componente, iar un grup va utiliza doar un singur terminal. Astfel, printr-un singur terminal pot fi transmise mai multe tipuri de date, cum se prezint n figura 5.11.

5.4. Utilizarea grupurilor pentru transferul datelor ntre dou subIV-uri


Dup cum se tie din capitolul 2, un conector poate avea maxim 28 de terminale. Cnd se utilizeaz un conector cu un numr mare de terminale, datorit dimensiunii mici a acestora exist riscul efecturii unor conexiuni eronate.

5.5. Funcii referitoare la grupuri


n LabVIEW exist cteva funcii referitoare la grupuri. n cele ce urmeaz vom prezenta funciile de grupare i degrupare a componentelor.

5.5.1. Realizarea grupurilor


Funcia de grupare a componentelor (Bundle subpaleta Cluster. figura 5.12) se gsete n

Figura 5.12. Funcia de grupare Bundle

Aceasta grupeaz mai multe componente, realiznd un grup, sau nlocuiete una sau mai multe componente ale unui grup existent. Gruparea componentelor se face n funcie de numrul de ordine al acestora n cadrul grupului. Astfel, prima component conectat la funcia Bundle este

componenta cu indice 0, apoi urmeaz componenta cu indice 1, .a.m.d. Numrul de intrri al funciei poate fi modificat prin redimensoinarea acesteia utiliznd unealta de poziionare. n cazul construirii unui grup, intrarea cluster va rmne neconectat (figura 5.13). n cazul n care funcia este folosit pentru nlocuirea unor componente ale unui grup deja existent, caz n care grupul trebuie conectat la intrarea cluster a funciei, atunci numrul de intrri al funciei Bundle trebuie s fie identic cu numrul de componente al grupului de intrare (figura 5.14). Totui, n acest caz, nu fiecare intrare a funciei trebuie s aib conectat o component. Se conecteaz doar componenta care trebuie nlocuit. Trebuie atenie ns la numrul de ordine al acesteia n cadrul grupului. Dup cum se vede din figura 5.14, n cadrul grupului Input Cluster 2 se nlocuiete componenta de pe poziia 0, Numeric, care are valoarea 5.00 cu componenta Numeric 2n care are valoarea 3. Funcia Bundle by Name (figura 5.15) se folosete doar pentru nlocuirea unor componente ale unui grup existent.

Figura 5.15. Funcia de grupare Bundle By Name

Funcia lucreaz la fel ca i Bundle, cu deosebirea c obiectele din grup nu sunt identificate dup poziia pe care acestea o ocup, ci dup eticheta pe care ele o poart. Nu pot fi accesate cu aceast funcie componentele care nu au etichet (figura 5.16). Spre deosebire de funcia Bundle, n cazul acestei funcii este necesar conectarea unui grup deja creat la intrarea named cluster, i cel puin una dintre componentele acestui grup trebuie s aib o etichet. ns numrul de intrri al funciei Bundle by Name nu trebuie s fie identic cu numrul de obiecte al grupului. Se adaug doar attea intrri cte componente se doresc a fi schimbate. Exist posibilitatea cu un clic stnga pe terminalul de intrare s se atribuie componenta care trebuie modificat (figura 5.17).

Figura 5.13. Exemplu de grupare a unor obiecte: panoul frontal i diagrama bloc

Figura 5.16. Exemplu de nlocuire a unui obiect dintr-un grup folosind funcia Bundle By Name: panoul frontal i diagrama bloc

Figura 5.17. Selectarea componentei n funcia Bundle By Name


Figura 5.14. Exemplu de nlocuire a unui obiect dintr-un grup: panoul frontal i diagrama bloc

5.5.2. Descompunerea grupurilor


Pentru descompunerea grupurilor n componente se folosesc dou funcii: Unbundle i Unbundle by Name. Funcia Unbundle (figura 5.18) descompune grupul innd cont de ordinea componentelor n cadrul acestuia. Figura 5.18. Funcia de descompunere Unbundle Numrul terminalelor de ieire al acestei funcii trebuie s fie egal cu numrul componentelor grupului care este descompus. Adugarea sau tergerea unui terminal de ieire se face din meniul funciei sau prin redimensionarea acesteia utiliznd unealta de poziionare. Un exemplu de utilizare a funciei Unbundle este prezentat n figura 5.19. realizeaz descompunerea unui grup innd Funcia Unbundle by Name cont de etichetele componentelor. La fel ca i la funcia pereche Bundle by Name, numrul de terminale de ieire nu trebuie s fie identic cu numrul componentelor grupului. Pot fi extrase doar acele componente care sunt necesare (figura 5.20).

Figura 5.20. Exemplu de extragere a dou obiecte dintr-un grup folosind funcia Unbundle By Name: panoul frontal i diagrama bloc

5.5.3. Conversia grupurilor


Un grup poate fi convertit n format tip matrice monodimensional dac toate componentele sale sunt de acelai tip. Funcia care realizeaz acest lucru este Cluster To Array . Indicii elementelor matricei corespund ordinii componentelor n cadrul grupului. Conversia invers (din matrice monodimensional n grup) se face cu funcia Array To Cluster . Aceast facilitate de conversie este util n special la crearea meniurilor utiliznd comenzi booleene.

5.5.4. Operaii cu grupuri


n general funciile LabVIEW sunt polimorfice. De exemplu funciile aritmetice pot fi aplicate i grupurilor, fr restricii, cu condiia ca elementele componente ale grupului s suporte respectiva operaie.

Figura 5.19. Exemplu de extragere a trei obiecte dintr-un grup folosind funcia Unbundle: panoul frontal i diagrama bloc

Capitolul 6

MATRICE
Figura 6.1. Selectarea unui cadru de matrice

6.1. Elemente generale


O matrice este o colecie de date care sunt toate de acelai tip. O matrice poate avea una sau mai multe dimensiuni, pn la 231 elemente pe fiecare dimensiune, valoare care este dat de dimensiunea memoriei. Matricele n LabVIEW pot fi de orice tip. Totui, nu putei avea o matrice de matrice, de diagrame sau de grafice. Fiecare element al matricei poate fi accesat prin indicele su. Indicele este un numr ntreg, cuprins ntre 0 i N-1, unde N este numrul de elemente din matrice. Matricea monodimensional (1D) prezentat mai jos ilustreaz aceast structur. De remarcat este c primul element al matricei are indicele 0, al doilea element are indicele 1, i aa mai departe.
0 0.6 1 1.3 2 5.2 3 8.3 4 6.2 5 4.2 6 7.3 7 9.4 8 1.8 9 7.6

Figura 6.2. Cadrul de matrice pe panoul frontal

Pasul 2: Pentru a crea o matrice, translatai un obiect de date n matricea-cadru sau plasai-l direct utiliznd meniul aparent al matricei-cadru. Un exemplu de matrice monodimensional numeric este artat n figura 6.3.
Figura 6.3. Matrice monodimensional numeric

Crearea comenzilor i a indicatoarelor de tip matrice

O comand sau un indicator de tip matrice poate fi creat prin combinarea unei structuri matriceale cu un obiect de date, care poate fi numeric, boolean sau de tip ir de caractere. Pasul 1: Selectai o matrice-cadru goal din subpaleta Array & Cluster a paletei Controls (figura 6.1.) Rezultatul obinut pe panoul frontal este prezentat n figura 6.2.

Atenie! nainte de a utiliza o matrice n diagrama bloc trebuie s asociai matricei-cadru un obiect de date. Dac nu se face acest lucru, terminalul de matrice v va apare ca un dreptunghi negru care conine dou paranteze drepte.
Matricele bidimensionale

O matrice bidimensional (2D array) necesit doi indici: un indice corespunztor rndului i un alt indice corespunztor coloanei matricei respective. Ambii indici au ca valoare iniial zero, i sunt folosii pentru identificarea unui element al matricei respective. Unei comenzi sau unui indicator de matrice i se pot aduga mai multe dimensiuni prin selectarea opiunii Add Dimension din meniul aparent Index display (figura 6.4)

Figura 6.4. Adugarea unei dimensiuni la o matrice

Exemplul din figura 6.5 prezint o matrice cu dou dimensiuni.

Figura 6.5. Matrice bidimensional numeric Figura 6.6. Crearea unei matrice constant Crearea matricelor constante

n diagrama bloc se pot crea matrice constante prin combinarea unui model de matrice cu un obiect de date, dup cum se dorete s apar pe panoul frontal. Matricele constante sunt o combinaie dintre o matrice-cadru constant care se gsete n paleta Functions, subpaleta Array i o constant de date. Exemplul de mai jos prezint modul de construire a unei matrice constante cu valori booleene. Pasul 1: Selectai o matrice-cadru constant (Array Constant) din subpaleta Array a paletei Controls (figura 6.6).

Pasul 2: Pentru a crea o matrice, se translateaz un obiect de date n matricea-cadru (figura 6.7 a) sau se pune obiectul direct n cadru utiliznd meniul aparent al matricei- cadru respective. Obiectele de date pot fi de tipul boolean (figura 6.7 b), numeric (figura 6.7 c) sau ir de caractere, obiecte care se pot alege din paleta de funcii (Functions).

a)

b)

c)

Figura 6.7. Matrice constant: a. cadrul; b. matrice boolean; c. matrice numeric

6.2. Crearea matricelor utiliznd bucle


Bucla For i bucla While pot indexa i acumula matrice automat la limitele lor. Aceast facilitate este denumit autoindexare. Figura 6.8 prezint o bucl For care autoindexeaz o matrice la limitele sale. Fiecare iteraie a buclei conduce la crearea urmtorului element al matricei respective. Dup terminarea executrii buclei, matricea creat este atribuit indicatorului. De remarcat c legtura devine mai groas de ndat ce conecteaz o matrice de la ieirea din bucl pn la indicator.

de autoindexare trebuie fcut manual, din meniul aparent al tunelului, dup cum s-a prezentat anterior.
Crearea matricelor bidimensionale

Pentru crearea unei matrice bidimensionale (2D Array) se pot utiliza dou bucle For una n cealalt. Bucla For exterioar creaz elementele de tip rnd iar bucla For interioar genereaz elementele de tip coloan. Exemplul din figura 6.10 prezint dou bucle For care au activat funcia de autoindexare i care genereaz la ieire o matrice bidimensional de numere aleatoare.

Figura 6.8. Crearea unei matrici utiliznd bucla For (Enable indexing)

Dac este necesar pstrarea doar a ultimei valori generate de bucla respectiv, fr s fie necesar generarea ntregii matrice, trebuie ca din meniul aparent al tunelului (dreptunghiul negru de la limita buclei) s fie selectat opiunea Disable Indexing. Aceast opiune dezactiveaz autoindexarea i pstreaz la ieire doar ultimul element generat de bucl. n exemplul din figura 6.9, autoindexarea este dezactivat i la ieirea din bucla For este pstrat doar ultimul element generat de funcia Random Number (generator de numere aleatoare n intervalui 0-1). De remarcat c grosimea liniei de legtur nu se modific la ieirea din bucla For.

Figura 6.10. Crearea unei matrice bidimensionale numerice utiliznd bucla For Utilizarea autoindexrii pentru a configura numrtorul unei bucle For

Dac este activat facilitatea de autoindexare la o matrice care este o mrime de intrare ntr-o bucl For, LabVIEW seteaz automat numrtorul de iteraii al buclei la valoarea dat de dimensiunea matricei respective, eliminnd prin urmare necesitatea conectrii unei alte valori la terminalul corespunztor numrtorului de iteraii. Dac este activat autoindexarea pentru dou sau mai multe matrice de intrare sau dac este conectat i o valoare la terminalul corespunztor numrtorului de iteraii, numrtorul va deveni egal cu cea mai mic dintre aceste valori. n exemplul din figura 6.11, numrtorul buclei For va fi setat de dimensiunea matricei (5) care este mai mic dect valoarea N (20) conectat la terminalul corespunztor numrtorului de iteraii.
Figura 6.11. Utilizarea autoindexrii pentru a configura numrtorul unei bucle For

Figura 6.9. Pstrarea ultimei valori generate de o bucl For (Disable Indexing)

Not: Deoarece buclele For sunt cel mai adesea utilizate pentru generarea i prelucrarea de matrice, programul LabVIEW activeaz implicit opiunea de autoin-dexare n momentul ieirii unei mrimi din bucla For. De asemenea, programul LabVIEW nu activeaz implicit opiunea de autoindexare n cazul buclelor While. Pentru aceste bucle, dac se dorete, activarea opiunii

6.3. Funcii referitoare la matrice


LabVIEW are mai multe funcii utilizate la procesarea matricelor, care sunt grupate n subpaleta Array a paletei de funcii (Functions). Cele mai des ntlnite funcii referitoare la matrice sunt prezentate n cele ce urmeaz.

Figura 6.14. Construirea unei matrice. Funcia Build Array

a b

Figura 6.15. Construirea unei matrice cu opiunea Concatenate Inputs dezactivat (a) i activat (b)

Figura 6.12. Dimensiunea unei matrice. Funcia Array Size

Dimensiunea unei matrice este furnizat de funcia Array Size (figura 6.12). Aceasta returneaz numrul de elemente al matricei care se constituie n mrime de intrare a acestei funcii. Dac matricea de intrare este Ndimensional, mrimea de ieire este o matrice cu N elemente. Un element al matricei de ieire contorizeaz numrul de elemente al matricei de intrare pe o dimensiune.

Construirea unei matrice se realizeaz utiliznd funcia Build Array (figura 6.14). Aceast funcie concateneaz mai multe matrice sau adaug elemente la matrice deja existente. Pictograma din diagrama bloc a funciei Build Array este prezentat tot n figura 6.14. Aceast pictogram poate fi redimensionat pentru a crete numrul mrimilor de intrare. Tipul mrimii de intrare este stabilit n mod automat. Exist trei cazuri distincte:
dimensional care va conine, n ordine, toate elementele de intrare;

toate intrrile n bloc sunt de tip element: rezultatul va fi o matrice mono mrimile de intrare sunt de tipuri diferite: matrice monodimensionale i

Figura 6.13. Iniializarea unei matrice. Funcia Initialize Array

Iniializarea unei matrice se realizeaz cu funcia Initialize Array (figura 6.13). Aceast funcie are dou mrimi de intrare: elementul i numrul de elemente corespunztoare unei dimensiuni. Aceast funcie poate fi redimensionat, n funcie de numrul de dimensiuni dorite la matricea de ieire. Exemplul prezint o matrice monodimensional, care conine trei elemente iniializate cu valoarea 4.

elemente: n acest caz rezultatul va fi o matrice monodimensional, format prin concatenarea matricelor monodimensionale i a elementelor de intrare, n ordinea n care au fost date (figura 6.14); toate mrimile de intrare sunt matrice monodimensionale: n acest caz exist posibilitatea ca programatorul s precizeze formatul mrimii de ieire (matrice monodimensional sau bidimensional). Cazul implicit este acela al unei matrice bidimensionale de ieire (figura 6.15 a). n cazul n care se dorete ca ieirea s fie o matrice monodimensional, se selecteaz comanda Concatenate Inputs din meniul aparent al funciei Build Array (figura 6.15 b). Comanda Concatenate Inputs devine activ doar dac programatorului i este permis s configureze tipul ieirii. n cazul n care comanda nu este activ, exist doar o singur posibilitate valid, care va fi aleas automat de program. Funcia Array Subset returneaz o poriune dintr-o matrice, ncepnd de la indicele furnizat prin mrimea de intrare index i avnd un numr de elemente precizat prin mrimea de intrare length. Un exemplu este prezentat n figura 6.16.

Figura 6.16. Extragerea unei poriuni dintr-o matrice. Funcia Array Subset

Figura 6.18. Extragerea unei coloane i a unui rnd dintr-o matrice Figura 6.17. Extragerea unui element dintr-o matrice. Funcia Index Array

6.4. Polimorfisme
Funciile aritmetice din LabVIEW i anume: adunarea, scderea, nmulirea, mprirea .a.m.d., sunt funcii polimorfice. Aceasta nseamn c intrrile n aceste funcii pot fi reprezentate de diferite structuri de date scalare sau matrice. De exem-plu se poate efectua o operaie de adunare a unui scalar la o matrice sau la fel de bine pot fi adunate dou matrice, utiliznd aceeai funcie de adunare. Exemplele din figura 6.19 prezint unele dintre combinaiile polimorfice ale operaiei de adunare.

Funcia Index Array (fig.6.17) acceseaz un element al unei matrice. Mrimile de intrare n aceast funcie sunt matricea al crei element se dorete a fi accesat i indicele elementului dorit din acea matrice. n exemplul prezentat funcia Index Array acceseaz al treilea element al unei matrice. De remarcat c mrimea conectat la intrarea index are valoarea 2, deoarece indexarea unei matrice pornete de la valoarea zero (primul element al unei matrice are indicele zero). Exemplul precedent a prezentat extragerea unui element (scalar) dintr-o matrice monodimensional. Aceast funcie poate fi utilizat ns, n egal msur, pentru extragerea unui element dintr-o matrice multidimensional, precum i pentru extragerea elementelor corespunztoare mai multor dimensiuni dintr-o matrice multi-dimensional. Pictograma din diagrama bloc a funciei Index Array are posibilitatea de a fi redimensionat, pentru a permite stabilirea coordonatelor elementului respectiv. Pentru a accesa un element dintr-o matrice multidimensional, pictograma funciei trebuie redimensionat pn la apariia attor dreptunghiuri negre cte dimensiuni are matricea respectiv. Apoi la fiecare dreptunghi trebuie conectat coordonata elementului n dimensiunea respectiv. De asemenea, pentru extragerea elementelor corespunztoare mai multor dimensiuni dintr-o matrice multidimensional, n primul rnd trebuie redimen-sionat pictograma funciei pentru a permite apariia attor intrri cte dimensiuni are matricea respectiv. Intrrile funciei Index Array, care precizeaz dimensiunea dup care se face extragerea, vor fi furnizate explicit. Celelalte intrri vor fi lsate libere, LabVIEW marcnd acest lucru prin transformarea simbolului intrrii dintr-un dreptunghi plin ntr-un dreptunghi gol. Un exemplu practic de extragere a unei linii i a unei coloane dintr-o matrice bidimensional este prezentat n figura 6.18.

Figura 6.19. Polimorfismul funciilor aritmetice n LabVIEW

n prima combinaie, rezultatul adunrii unui scalar cu un scalar este evident un scalar. n cea de-a doua combinaie, rezultatul adunrii dintre un scalar i o matrice l reprezint o matrice care are ca elemente rezultatele adunrii scalarului la fiecare element al matricei iniiale. n cea de-a treia combinaie avem adunarea a dou matrice monodimensionale, cu acelai numr de elemente. Rezultatul este tot o matrice monodimensional care are ca elemente rezultatele adunrii elementelor corespondente ale celor dou matrice. n cea de-a patra combinaie avem adunarea a dou matrice monodimensionale cu numr diferit de elemente. Rezultatul se obine exact ca n cazul combinaiei precedente, cu observaia c matricea-rezultat va avea acelai numr de elemente ca i matricea de intrare cu cel mai mic numr de elemente.

n figura 6.20 se prezint exemplul generrii (utiliznd bucla For) unei matrice care conine numere aleatoare ntre 0 i 1, iar matricea rezultat va fi nmulit cu un scalar. Rezultatul final: o matrice bidimensional n care fiecare element este rezultatul nmulirii elementului corespunztor al matricei generate, cu factorul de scalare precizat.

generate iar cele 50 de rezultate s fie memorate ntr-un alt ir. S se calculeze valorile minim i maxim ale irului nou creat.

Figura 6.20. nmulirea unei matrice bidimensionale cu un scalar

6.5 Aplicaii propuse


1. S se genereze sistemul trifazat de tensiuni, cu ecuaiile:
U a = U ef 2 sin (t )
U b = U ef U c = U ef 2 2 sin t + 3 4 2 sin t + 3

unde = 2f

U ef = 220V f = 50 Hz

Timpul t variaz ntre 0 i 40ms cu pasul 0.1 ms. Reprezentarea va fi fcut sub forma unei matrice bidimensionale cu 4 coloane, pe prima coloan fiind timpul t iar pe urmtoarele trei coloane, cele trei tensiuni, Ua, Ub i Uc. 2. S se genereze o matrice de dimensiuni 8x8 care s conin valori aleatoare n intervalul [0, 10]. S se depun n dou iruri distincte, n ordine cresctoare, cele 64 de valori din aceast matrice, astfel: n primul ir valorice cuprinse ntre 0 i 5 inclusiv, iar n cel de-al doilea i valorile mai mari ca 5. Pragul ales aici (5) s poat fi modificat prin panoul frontal. 3. S se genereze un ir de 100 de numere aleatoare ntregi, cuprinse ntre 10 i 10. S se nmuleasc perechile de valori n ordinea n care au fost

Capitolul 7

Figura 7.2 prezint un grafic care are afiate toate opiunile. Opiunile pot fi fcute vizibile la dorina programatorului, prin selectarea comenzii Visible Items din meniul aparent al graficului.

DIAGRAME ALE FORMELOR DE UND I GRAFICE


7.1 Elemente generale
Graficele i diagramele difer ntre ele prin modul n care afieaz i reactua-lizeaz datele. Graficele colecteaz de obicei toate valorile ntr-o matrice, pe care apoi o reprezint grafic. Acest lucru este asemntor unui tabel de valori, care nti stocheaz toate valorile, pe care apoi le reprezint grafic. Diagramele n schimb traseaz graficul n timp real. Pe msur ce noi puncte sunt calculate, ele sunt adugate la graficul deja existent. Deci n acest caz, trasarea graficului poate ncepe deja de la primul punct calculat. Subpaleta de reprezentri grafice din LabVIEW (figura 7.1) conine funcii pentru diagrame i grafice 2D i 3D.
Figura 7.2. Elementele unui grafic

1. Legenda (Plot legend) 2. Cursorul (Cursor) doar pt. grafic 3. Marcarea grilei (Grid Mark) 4. Marcarea sub-grilei (Mini-grid mark) 5. Paleta de comenzi a graficului (Graph palette) 6. Micarea cursorului (Cursor mover)

7. Legenda cursorului (Cursor legend) doar pt. grafic 8. Legenda axelor (Scale legend) 9. Axa X (X-scale) 10. Axa Y (Y-scale) 11. Eticheta (Label)

Tabelul 7.1 Pictograma Denumirea Waveform Chart Figura 7.1. Subpaleta de reprezentri grafice Waveform Graph XY Graph Intensity Chart Intensity Graph Digital Waveform Graph Explicaii Diagram care reprezint valorile cu o rat constant Grafic care reprezint valorile cu o rat constant Grafic care reprezint valorile cu o rat care nu este constant Diagram 3D pe un sistem 2D, pentru cea de-a treia dimensiune utiliznd culorile Grafic 3D pe un sistem 2D, pentru cea de-a treia dimensiune utiliznd culorile Reprezint valorile n pulsuri Grafic 3D tip suprafa Grafic 3D parametric

n tabelul 7.1 sunt sintetizate principalele funcii de reprezentare grafic disponibile n LabVIEW.

3D Surface Graph 3D Parametric Graph

Pictograma

Denumirea 3D Curve Graph

Explicaii Grafic 3D tip curb

Prin redimensionarea ferestrei de legend se pot configura opiunile pentru mai multe grafice reprezentate pe acelai panou. Din meniul aparent al curbei respective se pot obine o serie de faciliti referitoare la culoarea de desenare a graficului respectiv, stilul i grosimea liniei, tipul de grafic (linie sau dreptun-ghiuri), modul de marcare explicit a punctelor, interpolarea i opiunea mpotriva erorii de subeantionare (figura 7.3).

Diagrama formei de und dispune de trei moduri de actualizare. Acestea sunt: strip chart (diagram tip panglic), scope chart (diagram tip osciloscop) i sweep chart (diagram cu mturare), dup cum se prezint n figura 7.5. Modul de actualizare se alege din meniul diagramei prin selectarea opiunilor: Data Operations Update Mode. n modul de execuie se alege direct opiunea Update Mode din meniul diagramei. Selectarea opiunii strip chart va avea ca rezultat obinerea unui ecran cu derulare. Opiunile scope chart si sweep chart vor produce un ecran similar cu acela al unui osciloscop. Din cauz c la scope chart i sweep chart nu este necesar redesenarea ntregului grafic la fiecare nou punct (cum se face la strip chart), aceste dou metode sunt semnificativ mai rapide n afiarea rezultatelor.

Figura 7.3. Meniul legendei

Cursorul este activ doar n modul grafic, nefiind disponibil n mod diagram. De asemenea, utiliznd celelalte elemente ale graficului se pot configura axele i grila. Din meniul aparent al graficului se poate aduga nc o ax (orizontal sau vertical) pentru uurina interpretrii rezultatelor (Comanda Duplicate Scale).

Figura 7.4. Reprezentarea a dou grafice pe aceeai diagram

7.2. Diagrame ale formelor de und


Diagramele formelor de und reprezint un format special de indicator numeric, care pot figura unul sau mai multe grafice. Opiunea de diagram de form de und poate fi selectat din subpaleta Graph a paletei de comenzi (Controls). Diagrama unei forme de und poate reprezenta unul sau mai multe grafice simultan. Un exemplu de mai multe grafice reprezentate simultan este prezentat n figura 7.4 a b c

Figura 7.5. Moduri de actualizare a diagramei: a. strip chart; b. scope chart; c. sweep chart

n cazul opiunii scope chart, n momentul n care graficul a atins marginea din dreapta a ferestrei de afiare, ntregul grafic este ters iar afiarea

rencepe din partea stng a acestuia. n cazul opiunii sweep chart, tergerea ferestrei se face progresiv pe msur ce sunt adugate noi valori. O bar vertical care se deplaseaz separ noile valori adugate de cele existente deja pe ecran.
Realizarea unei diagrame cu un singur grafic O diagram cu un singur grafic se realizeaz prin simpla legare a ieirii numerice a unui bloc la intrarea diagramei. Tipul de date afiat de ctre pictograma diagramei va fi cel care este adus la intrarea blocului diagramei. Un exemplu este prezentat n figura 7.6.

Formatarea ferestrei de reprezentare grafic

n cazul reprezentrii grafice utiliznd diagramele, exist posibilitatea reprezentrii a mai multor grafice pe o aceeai diagram, sau crearea unei diagrame separate pentru fiecare grafic utiliznd comanda Stack Plots din meniul aparent al diagramei respective. n figura 7.8 se prezint cele trei forme de und pentru diagrama din figura 7.7, utiliznd comanda Stack Plots.

Axele X i Y cu ajutorul crora se face reprezentarea grafic pot fi formatate i personalizate. Din meniul de editare al ferestrei de reprezentare grafic (clic dreapta), se selecteaz comanda X Scale Formatting. Rezultatul este apariia unei ferestre de parametri, prezentat n figura 7.9.

Figura 7.6. Exemplu de diagram cu un singur grafic

Realizarea unei diagrame cu mai multe grafice

Dup cum s-a menionat, diagramele formelor de und pot reprezenta simultan mai multe grafice. Datele trebuie s fie n prealabil concatenate, prin utilizarea funciei Bundle (din cadrul subpaletei Clusters). n exemplul prezentat n figura 7.7., funcia Bundle leag sau grupeaz ieirile a trei subIV-uri pentru a le putea reprezenta grafic pe aceeai diagram. Este de remarcat schimbarea indicaiei pictogramei Strip Chart .

Figura 7.8. Reprezentarea a trei grafice pe aceeai diagram, utiliznd comanda Stack Plots

Figura 7.7. Utilizarea funciei Bundle

Grila i tipul de axe pot fi alese utiliznd selectorul . De asemenea pot fi alese tipul de scar (liniar sau logaritmic) i factorul de scalare precum i formatul i precizia de reprezentare. Validarea configuraiei alese de face prin apsarea butonului OK. De asemenea exist posibilitatea tergerii ferestrei de afiare, operaie care se realizeaz cu comanda Data Operations Clear Chart din meniul acesteia. Daca IV-ul se afl n execuie, se selecteaz direct comanda Clear Chart (terge Diagrama) din meniul ferestrei diagramei.

Pentru a aduga i mai multe grafice, este suficient a se redimensiona funcia Bundle (prin utilizarea uneltei de poziionare). Astfel se adaug noi intrri funciei Bundle, intrri la care vor fi aduse mrimile de ieire ale altor funcii care se doresc a fi reprezentate grafic pe aceeai diagram.

Indicatorul pentru un grafic tip form de und se gsete n subpaleta Graph a paletei Controls. Graficul de tip form de und poate desena doar funcii monovalente cu distribuie uniform a punctelor, cum ar fi de exemplu rezultatele unor achiziii de date cu frecven constant. Graficele tip form de und sunt ideale pentru reprezentarea grafic a matricelor de date n care punctele sunt uniform distribuite.
Grafice cu o singur nregistrare

Pentru graficele de baz cu o singur nregistrare, matricea care conine valorile ordonatei Y este conectat direct la intrarea funciei grafic n diagrama bloc. Aceast metod presupune c valoarea iniial a abscisei X este 0 i c valoarea pasului pe abscis X este 1. Pictograma graficului de tip form de und apare n acest caz, n diagrama bloc, ca i un indicator al unei matrice (figura 7.11).
Realizarea graficelor utiliznd grupuri Figura 7.9. Meniul de configurare al axei X

7.3. Grafice 2D
Un indicator grafic este un afior 2D pentru una sau mai multe matrice de date, denumite nregistrri (plots). LabVIEW dispune de dou tipuri de grafice: grafice XY i grafice tip form de und. Ambele tipuri se prezint n mod identic pe panoul frontal al instrumentului virtual. Un exemplu de grafic din panoul frontal este prezentat n figura 7.10.

Dar n acelai timp poate fi creat un grup n care s se precizeze valoarea iniial a abscisei X i valoarea pasului pe abscis X, ca n exemplul don fig.7.12. Aceast reprezentare ofer evident o mai mare flexibilitate. De remarcat c n acest caz pictograma graficului de tip form de und apare, n diagrama bloc, ca i un indicator al unui grup.

Figura 7.11. Realizarea graficului unei singure funcii

Funcia Bundle (fascicul), din subpaleta Array asambleaz componentele graficului ntr-un singur grup. Pentru graficul tip form de und, componentele includ valoarea iniial a abscisei X, valoarea pasului pe abscis X i matricea de pe ordonat, Y. Pictograma din diagrama bloc este prezentat n figura 7.12.

Figura 7.10. Exemplu de grafic

Grafice de tip XY

Indicatorul pentru un grafic tip XY se gsete n subpaleta Graph a paletei Controls. Graficul tip XY este un grafic de uz general, n coordonate carteziene, utilizat pentru trasarea graficelor funciilor multivalente cum ar fi formele circulare sau formele de und cu un pas variabil pe abscis. Un exemplu este prezentat n figura 7.15.

Figura 7.12. Realizarea graficului unei singure funcii utiliznd grupuri Grafice cu mai multe nregistrri

La intrarea unui grafic pot fi aduse mai multe nregistrri, prin crearea unei matrice de tipuri date, ca i cele folosite n graficele cu o singur nregistrare. Exem-plele prezentate n continuare prezint detaliat dou metode pentru crearea graficelor cu mai multe nregistrri. Figura 7.15. Realizarea graficului XY cu pas variabil

Figura 7.13. Realizarea graficului a dou funcii

n primul exemplu, (figura 7.13) n care o matrice bidimensional este conectat direct la intrarea funciei grafic in diagrama bloc, se presupune, ca i n exemplul prezentat la graficul cu o singur nregistrare, c valoarea iniial a abscisei X este 0 i c valoarea pasului pe abscis X este 1, pentru ambele matrice monodimen-sionale care prin concatenare formeaz matricea bidimensional. n cel de-al doilea exemplu, (figura 7.14) se permite specificarea att a valorii iniiale a abscisei X, ct i a pasului pe abscis X pentru fiecare dintre cele dou matrice monodimensionale. De remarcat este faptul c crearea grupurilor se face nainte de concatenare, n acest caz funcia Build Array avnd rolul de a concatena dou grupuri i nu dou matrice. Figura 7.14. Realizarea graficului a dou funcii utiliznd grupuri

n acest caz funcia Build Array are rolul de a combina dou matrice, X i Y, ntr-un grup care este conectat la intrarea graficului tip XY. Pentru un grafic tip XY, componentele sunt, de sus n jos, matricea X i matricea Y. Graficul tip XY apare acum ca i un indicator al unui grup.

7.4. Grafice numerice


Graficul din figura 7.16 reprezint o matrice de 7 numere ntregi fr semn, pe 8 bii (format U8).

Figura 7.16. Exemplu de grafic numeric: a. Panoul frontal; b. Diagrama bloc

a.

b.

Exist posibilitatea mascrii datelor care vor fi reprezentate grafic. Aceasta se realizeaz prin introducerea a nc unei funcii Bundle n care vor aprea ca i mrimi de intrare graficul numeric i masca. Prin mascarea rezultatului, diagrama bloc din figura 7.16 b va arta ca i n figura 7.17.

a.

Figura 7.17. Exemplu de grafic numeric cu mascarea rezultatului

b.
Figura 7.18. Exemplu de suprafa 3D: a. Panoul frontal; b. Diagrama bloc

7.5. Grafice 3D
n cazul multor aplicaii practice, cum ar fi de exemplu distribuia temperaturii pe o suprafa, analiza n domeniul timp i frecven, este necesar vizualizarea datelor n trei dimensiuni. Aceasta este posibil cu ajutorul graficelor 3D. n LabVIEW exist trei tipuri de grafice tridimensionale:
Grafic 3D tip suprafa Grafic 3D parametric Grafic 3D tip curb

7.6 Aplicaii propuse


1. S se reprezinte grafic sistemul trifazat de tensiuni generat cu ecuaiile i datele din aplicaia 6.5.1. Pentru reprezentare se va folosi indicatorul XY Graph. 2. S se creeze un IV care s genereze numere aleatoare n intervalul [-5, 5]. S se reprezinte aceste valori pe o diagram n mod actualizare (update). Pe panoul frontal se vor afla, pe lng grafic, un comutator cu dou poziii de start / stop a generrii numerelor i un buton rotativ pentru stabilirea frecvenei de generare a numerelor aleatoare, n plaja 0-3 secunde.

Graficele 3D utilizeaz tehnologia ActiveX i sunt disponibile doar n versiunile pentru Windows de LabVIEW.

n figura 7.18 se prezint panoul frontal i diagrama bloc pentru un exemplu de grafic tridimensional tip suprafa.

Capitolul 8

STRUCTURI DE TIP CAZ I SECVEN. FORMULA DE CALCUL


Capitolul de fa prezint alte dou structuri LabVIEW: structura de tip caz (Case) i structura de tip Secven (Sequence). De asemenea n acest capitol se va introduce noiunea de Formul de calcul (Formula Node).

Structura de tip caz este analoag cu instruciunile de tip caz sau if ... then ... else din limbajele de programare clasice, bazate pe text. Structura de tip caz este configurat ca i un pachet de cri de joc; numai un singur caz este vizibil la un moment dat. Fiecare caz conine cte o subdiagram. La o trecere este executat un singur caz, n funcie de valoarea conectat la terminalul de selecie. Terminalul de selecie poate fi numeric, boolean sau de tip ir de caractere. Dac la terminalul de selecie este conectat o valoare boolean, structura va avea dou cazuri: adevrat (true) i fals (false). Dac valoarea conectat la terminalul de selecie este numeric, structura poate avea pn la 231-1 cazuri distincte (figura 8.2).

8.1. Structura de tip caz (Case)


Structura de tip caz se poate plasa n diagrama bloc prin selectarea acesteia din subpaleta Structures a paletei Functions. Apoi putei cu aceast structur fie s ncadrai noduri existente, fie s creai alte noduri n interiorul acesteia.

Figura 8.2. Structuri de tip caz: a. numeric; b. boolean; c. ir de caractere

n figura 8.3. se prezint un exemplu de utilizare a structurii de tip caz. n acest exemplu, numerele trec prin tunelele de intrare i ajung n structura de tip caz. Aici se execut fie operaia de adunare a lor, fie operaia de scdere, n funcie de valoarea conectat la terminalul de selecie. Dac valoarea boolean conectat la terminalul de selecie are valoarea adevrat (true), IVul va aduna cele dou numere; n caz contrar le va scdea. Figura 8.1. Structura de tip Caz

Figura 8.3. Exemplu de structur de tip caz boolean

n figura 8.4. se prezint un exemplu al unei structuri de tip caz numeric. n acest exemplu, numerele trec prin tunelele de intrare i ajung n structura de tip caz. Aici se execut operaia de adunare a lor, fie operaia de scdere, nmulire sau mprire, n funcie de valoarea numeric conectat la terminalul de selecie.

8.2. Structura de tip secven (Sequence)


Structura de tip secven se poate plasa n diagrama bloc prin selectarea acesteia din subpaleta Structures a paletei Functions (figura 8.5). Apoi putei cu aceast structur fie s ncadrai noduri existente, fie s creai alte noduri n interiorul acesteia.

a.

b.

Figura 8.5. Structura de tip secven

Figura 8.4. Exemplu de structur de tip caz numeric: a. panoul frontal; b. diagrama bloc

n acest caz, o comand de tip text n inel (Text Ring Control) asociaz fiecrui rnd de text un anumit numr. Dac valoarea numeric generat de aceast comand are valoarea 0 (adunare), IV-ul va aduna cele dou numere; n caz c valoarea generat este 1 (scdere), se va efectua scderea celor dou numere. n cazurile 3 i 4 se va efectua nmulirea sau mprirea. Not: Tunelul de ieire trebuie definit n mod obligatoriu pentru fiecare caz n parte. n momentul n care se creeaz un tunel de ieire pentru un anumit caz, el va apare n aceeai poziie i pentru celelalte cazuri. Tunelele care nu sunt conectate apar sub forma unor ptrate albe. Trebuie s v asigurai c ai conectat toate tunelele de ieire pentru fiecare caz n parte. De asemenea la tunelele de ieire putei conecta constante sau comenzi prin utilizarea meniurilor aparente ale acestora.

Structura de tip secven, care se prezint ca i o secven de film (de unde vine i numele), execut diagrame n mod secvenial. n limbajele de programare convenionale bazate pe text, instruciunile programului sunt executate n ordinea n care apar n program. n limbajele de programare bazate pe fluxul de date, un nod este executat atunci cnd datele sunt disponibile la toate intrrile acestuia. Uneori este necesar ca unele noduri s fie executate naintea altora. Structura de tip secven este modalitatea prin care LabVIEW controleaz ordinea n care sunt executate nodurile. Diagrama care trebuie s fie executat prima este plasat n interiorul ramei 0(0..x), diagrama care trebuie s fie executat a doua este plasat n interiorul ramei 1(0..x) ... i aa mai departe. (0..x) reprezint plaja de rame pentru structura de tip secven respectiv. La fel ca i la structura de tip caz, doar o singur ram este vizibil la un moment dat.
Secvene locale

Secvenele locale sunt variabilele care transfer datele ntre ramele unei structuri de tip secven. Secvenele locale pot fi create oriunde la marginea unei rame. Datele conectate la o secven local sunt disponibile doar pentru diagramele coninute n ramele urmtoare. Exemplul din figura 8.6 prezint o structur de tip secven cu trei rame. O secven local n rama 1 pune la dispoziie valoarea returnat de funcia de nmulire. De remarcat c valoarea este disponibil doar n secvena 2 i nu este disponibil n secvena 0 (unde ptratul corespunztor secvenei locale apare haurat).

Formula de calcul este un chenar care poate fi redimensionat i care folosete la introducerea formulelor algebrice direct n diagrama bloc. Aceast facilitate este extrem de folositoare n cazul n care ecuaia are multe variabile sau este de o form mai complicat. De exemplu, s considerm ecuaia: y = 2x3 + 3x2 + 5x + 6. Dac aceast ecuaie este implementat folosind funciile aritmetice obinuite din LabVIEW, diagrama bloc ar arta ca n figura 8.8.

Figura 8.8. Exemplu de ecuaie rezolvat utiliznd funciile clasice

Figura 8.6. Exemplu de structura de tip secven

Aceeai ecuaie poate fi implementat folosind Formula de calcul, caz n care diagrama bloc arat ca n figura 8.9: Figura 8.9. Exemplu de ecuaie rezolvat utiliznd formula de calcul Utiliznd Formula de calcul se pot introduce direct formule complicate, n loc s se creeze subseciuni ale diagramei bloc. Terminalele de intrare i de ieire ale formulei de calcul se creeaz prin accesarea meniului aparent disponibil pentru aceast funcie. Din meniul aparent se poate selecta adugarea unei intrri (Add Input) sau adugarea unei ieiri (Add Output). Formulele se introduc n interiorul ramei i trebuie n mod obligatoriu s se termine cu punct i virgul (;). n tabelul 8.1 se prezint principalii operatori i funcii disponibile n Formula de calcul.
Tabelul 8.1

8.3. Formula de calcul (Formula Node)


Formula de calcul se poate plasa n diagrama bloc prin selectarea acesteia din subpaleta Structures a paletei Functions. Apoi putei introduce ecuaii n formula de calcul prin utilizarea uneltei de etichetare.

Figura 8.7. Formula de calcul

? : || && | ^

evaluare condiional sau logic i logic sau sau exclusiv

& i != i == diferit, egal >, <, >= i <= mai mare, mai mic, mai mare sau egal, mai mic sau egal >> i << rotaie la dreapta, rotaie la stnga + i adunare, scdere * i / nmulire, mprire ** ridicare la putere
n cazul n care ecuaia conine mrimi intermediare, acestea vor fi n mod obligatoriu declarate n formula de calcul ca i mrimi de ieire. n figura 8.10 se prezint implementarea prin formula de calcul a urmtorului set de ecuaii:

Un alt exemplu de implementare a unei bucle condiionale utiliznd formula de calcul este prezentat n cele ce urmeaz: if (y==x && a[2][3]<a[0][1]) { int32 temp; temp = a[2][3]; a[2][3] = y; y=temp; } else x=y; Se poate observa c structura de cod acceptat n interiorul formulei de calcul este foarte asemntoare cu o structur de program realizat n C. n cele ce urmeaz, se vor prezenta spre exemplificare, modurile de realizare cu ajutorul formulei de calcul a buclelor de tip DO WHILE, FOR, i WHILE.
Bucla DO WHILE

m = x2 + x + 1 y = 2 m 10
Figura 8.10. Exemplu de dou ecuaii rezolvate utiliznd formula de calcul Bucla condiional

do {

Urmtorul exemplu prezint modul cum pot fi utilizate buclele condiionale n interiorul formulei de calcul. S considerm urmtorul cod care calculeaz radicalul unui numr, dac acest numr este pozitiv i returneaz valoarea 1 dac numrul este negativ. if (x >=0) then y = sqrt(x) else y = -1 end if Acest fragment de cod poate fi implementat folosind Formula de calcul n urmtorul mod, dup cum se prezint n figura 8.11. Figura 8.11. Exemplu de bucl condiional rezolvat utiliznd Formula de calcul

} while (y!=x && a[2]>=a[0])


Bucla FOR

int32 temp; temp = --a[2]+y; y=y-1;

for (y=5; y<x; y*=2) { int32 temp; temp = --a[2]+y; x-=temp; }


Bucla WHILE

while (y!=x && a[2]>=a[0]) { int32 temp; temp = --a[2]+y; y=y-1; } Un exemplu mai complex privind utilizarea formulei de calcul este prezentat n figurile 8.12 (panoul frontal) i 8.13 (diagrama bloc).

Se vor trata n mod distinct cazurile:


a = b = c = 0, caz n care se va afia mesajul : IDENTITATE 0=0 !; a = b = 0, c 0, caz n care se va afia mesajul: REZOLVARE

IMPOSIBIL, c=0 ! ;
a = 0, b 0, caz n care se va afia mesajul Ecuaie de gradul nti, cu soluia

x = ..., i se va rezolva ecuaia;


a 0, < 0, caz n care se va afia mesajul Ecuaia are dou rdcini a 0, = 0, caz n care se va afia mesajul Ecuaia are dou rdcini reale

complexe conjugate, x1 = ... i x2 = ... i se va rezolva ecuaia;

Figura 8.12. Exemplu de Formul de calcul panoul frontal

Un exemplu de panou frontal pentru exemplul discutat este prezentat n figura 8.14 iar diagrama bloc corespunztoare n figura 8.15.

egale x1 = x2= ... i se va rezolva ecuaia; a 0, > 0, caz n care se va afia mesajul Ecuaia are dou rdcini reale distincte, x1 = ... i x2 = ... i se va rezolva ecuaia.

Figura 8.14. Rezolvarea ecuaiei de gradul 2 panoul frontal Figura 8.13. Exemplu de Formul de calcul diagrama bloc

n exemplul prezentat se poate observa modul de definire a unor variabile globale, simple sau de tip matrice, iniializare i operaii cu matrice efectuate n cadrul unor bucle iterative sau condiionale. De asemenea n LabVIEW exist o formul de calcul care poate procesa comenzi MATLAB (MATLAB Script). Aplicaie: Utiliznd formula de calcul, s se trateze complet rezolvarea ecuaiei de gradul II. Se pornete de la forma general a ecuaiei de gradul II, ax2 + bx + c = 0 unde coeficienii a, b i c sunt numere reale. Acestea vor fi definite ca i comenzi numerice n virgul mobil, n dubl precizie. Se va nota cu = b2 - 4 a c.

Figura 8.15. Rezolvarea ecuaiei de gradul 2 diagrama bloc

6.5 Aplicaii propuse


3. S se genereze un ir de numere aleatoare n plaja [15, 35], reprezentnd tempe-ratura dintr-o ncpere. Condiia este ca diferena dintre dou numere generate succesiv s nu fie mai mare dect 0.5. n momentul generrii unei valori, se vor reprezenta grafic, pe acelai grafic (n culori diferite), valoarea generat i media aritmetic a precedentelor 5 valori. Generarea valorilor se va face la un interval de 5 secunde. 4. S se rezolve simultan urmtoarele ecuaii: x1(t)=t3 -t2 +t + 10; x2(t)=2t2 -5t-10; x3 (t)=t2 - 3t + t + 8. Pe panoul frontal exist trei butoane, cte unul pentru fiecare ecuaie. La apsarea unui buton se reprezint graficul ecuaiei respective, n funcie de timp, fiecare cu alt culoare, pe aceeai diagram.

Capitolul 9

IRURI I FIIERE DE INTRARE / IEIRE. TABELE


9.1. iruri
Un ir este o succesiune de caractere care pot fi afiabile sau neafiabile. Cel mai adesea se utilizeaz iruri pentru mai mult dect pentru simple mesaje text. De exemplu, n comanda unui instrument se furnizeaz date numerice sub forma unor iruri. Apoi aceste iruri sunt convertite n numere. n multe cazuri, stocarea datelor numerice pe disc face apel la iruri. Aceasta nseamn c nti numerele trebuie convertite n iruri si abia apoi vor fi scrise ntr-un fiier de pe disc.
Crearea comenzilor i a indicatoarelor pentru iruri.

irului respectiv (figura 9.3). Dac este selectat aceast opiune, n locul caracterelor alfanumerice, n comanda i indicatorul de pe panoul frontal vor apare stelue (figura 9.4). Diagrama bloc ns va interpreta corect caracterele care au fost tiprite.

Figura 9.2. Meniul comenzii tip ir de caractere

Figura 9.1. Exemplu de comand tip ir de caractere

Comenzile i indicatoarele se gsesc n subpaleta String&Table a paletei Controls. Introducerea sau modificarea unui text n comanda de tip ir se face folosind unealta de etichetare sau unealta de operare. Comenzile de tip ir sunt nite dreptunghiuri redimensionabile, n funcie de cantitatea de text care este necesar a fi introdus. Redimensionarea se face acionnd cu ajutorul uneltei de poziionare asupra unuia din colurile chenarului. De asemenea, pentru a minimiza spaiul alocat de o asemenea comand, n special n cazul textelor de dimensiuni mari, se poate utiliza opiunea Bar de defilare (Scrollbar). Aceasta poate fi activat din meniul aparent al comenzii tip ir (Show Scrollbar) (figura 9.2). De asemenea comenzile i indicatoarele se pot configura pentru diferite tipuri de afiare. De exemplu poate fi ales modul de afiare tip parol (Password Display), prin activarea acestei opiuni din meniul aparent al

Figura 9.3. Selectarea opiunii Password Display

n acest mod de afiare, caracterele care n mod obinuit nu pot fi afiate vor apare ca \ urmate de un cod corespunztor. O list parial a codurilor este prezentat n tabelul 9.1. (Pentru a consulta lista complet se poate apela la funcia de ajutor (Help) din LabVIEW). Pentru a introduce un caracter neafiabil ntr-o comand de tip ir, se tasteaz caracterul \ urmat de codul caracterului respectiv. Dup cum se vede din figura 9.5, dup tastarea textului respectiv si apsarea butonului Enter din LabVIEW, fiecare caracter neafiabil va apare n format codat.
Tabelul 9.1

Codul \b \s \r \n \t Figura 9.4. Afiarea n mod parol

Interpretarea LabVIEW Backspace (ASCII BS, echivalent cu \08) Space (ASCII SP, echivalent cu \20) Return (ASCII CR, echivalent cu \0D) Newline (ASCII LF, echivalent cu \0A) Tab (ASCII HT, echivalent cu \09)

9.2. Funcii referitoare la iruri


Comenzile i indicatoarele pentru iruri pot afia i accepta caractere care n mod obinuit nu pot fi afiate, cum ar fi apsarea tastelor Backspace, Enter, Tab i aa mai departe. Pentru a afia aceste caractere trebuie aleas opiunea \ Codes Display din meniul aparent al irului. Rezultatul este prezentat n figura 9.5. LabVIEW are o mulime de funcii pentru a uura manipularea irurilor. Aceste funcii sunt disponibile n subpaleta String a paletei Functions. Unele dintre cele mai utilizate funcii vor fi prezentate n cele ce urmeaz. Lungimea unui ir (String Length): returneaz numrul de caractere al irului respectiv (figura 9.6).

Figura 9.6. Calculul lungimii unui ir

Concatenarea irurilor (Concatenate Strings): concateneaz toate irurile i matricele de iruri de intrare ntr-un singur ir de ieire (figura 9.7). Funcia se prezint cu urmtoarea pictogram plasat n diagrama bloc. Aceast pictogram poate fi redimensoinat (acionnd cu unealta de poziionare asupra unui col al acesteia) pentru a crete numrul de intrri. Implicit numrul de intrri este 2.
Figura 9.5. Afiarea n mod cod: panoul frontal i diagrama bloc

Figura 9.9. Cutarea unui anumit subir

Figura 9.7. Concatenarea irurilor

Crearea unui subir (String Subset): returneaz un subir ncepnd de la un anume caracter (precizat prin poziia acestuia n irul de intrare, denumit offset) i coninnd un numr de caractere precizat prin variabila lungime (length). De remarcat c poziia primului caracter este zero (figura 9.8).

n multe situaii este necesar convertirea numerelor n iruri i invers. Funcia de conversie Format Into String realizeaz conversia unui numr ntr-un ir i funcia Scan From String convertete un ir ntr-un numr. Ambele funcii pot realiza manipularea erorilor. Funcia de conversie Format Into String convertete orice format al argumentului (de exemplu numeric) ntr-un format specificat, variabila de ieire denumindu-se resulting string. Aceast funcie poate fi expandat pentru a avea la intrare mai multe valori care vor fi convertite simultan ntrun singur ir. Funcia poate formata irul de ieire n funcie de irul iniial (initial string), argumentele (arguments) i innd cont de formatul dorit (format string).

Figura 9.8. Crearea unui subir

Cutarea unui anumit subir (Match Pattern): returneaz subirul care este cutat. Aceast funcie caut o expresie regulat (regular expression) ntr-un ir (string), ncepnd de la o anumit poziie (offset) iar n cazul n care aceast expresie este gsit, irul este mprit n trei subiruri. Dac expresia nu este gsit, variabila de ieire match substring nu va conine nici un caracter iar poziia (offset past mach) va avea valoarea 1 (figura 9.9).

Figura 9.10. Conversia unui numr ntr-un ir

n exemplul din figura 9.10 se convertete numrul n virgul mobil 220.37 ntr-un ir cu 6 caractere 220.37.

Figura 9.11. Conversia unui ir ntr-un numr

Funcia invers, Scan From String convertete un ir care conine caractere numerice valide (cifrele 0 pn la 9, +,-,e,E, i perioada) ntr-un numr. Funcia ncepe scanarea irului introdus (input string) la o locaie bine precizat (initial search location). Funcia scaneaz irul introdus pentru diferite tipuri de date (de exemplu numerice sau booleene) bazndu-se pe formatul specificat al irului (format string). i aceast funcie este expandabil pentru a avea mai multe ieiri. n exemplul din figura 9.11, funcia convertete irul Tensiunea este: 220.37 n numrul 220.37. Aceast funcie va ncepe scanarea la al 16-lea caracter. (Locaia pentru primul caracter este zero). Ambele funcii Format Into String i Scan From String au o interfa denumit Edit Format String prin intermediul creia se precizeaz caracteristicile irului respectiv. Caracteristicile irului includ formatul, precizia, tipul de date i lungimea irului convertit. Aceast interfa poate fi accesat din meniul aparent al nodului sau prin executarea unui dublu clic pe funcia respectiv. Dup ce se precizeaz caracteristicile irului i se selecteaz opiunea Create String, fereastra de dialog creeaz constanta ir i o conecteaz la intrarea format string. n exemplul din figura 9.12 se prezint utilizarea interfeei Edit Format String pentru a crea un ir n virgul mobil, cu o precizie de dou cifre, cu o lungime total de 6 caractere, cu completare cu zerouri.

Figura 9.12. Stabilirea formatului numeric

Exist i funcii suplimentare de formatare a irurilor, n subpaleta String Additional String To Number Functions. Aceste funcii pot fi utilizate pentru tipuri de date specifice. De exemplu funcia To Fractional realizeaz conversia unui numr ntr-un ir formatat n virgul mobil (figura 9.13).

Figura 9.13. Conversia unui numr ntr-un ir formatat n virgul mobil

Funcia From Exponential / Fract / Eng realizeaz conversia unui ir care conine caractere numerice valide ntr-un numr n virgul mobil. Funcia ncepe scanarea la o poziie din ir precizat iniial (figura 9.14).

Figura 9.13. Conversia unui ir ntr-un numr n virgul mobil

9.3 Fiiere de intrare / ieire


Operaiile cu fiiere de intrare / ieire au ca scop stocarea pe disc i preluarea informaiilor stocate pe acesta. LabVIEW are multe funcii i IV-uri predefinite pentru a manipula fiierele de intrare / ieire. Toate funciile referitoare la fiierele de intrare / ieire se gsesc n subpaleta File I / O a paletei Functions (figura 9.14). Aceste funcii i IV-uri sunt organizate pe trei nivele ierarhice: a. IV-uri de nivel nalt referitoare la fiiere b. Funcii intermediare referitoare la fiiere c. Funcii avansate referitoare la fiiere
n continuare vor fi prezentate funciile intermediare i IV-urile de nivel nalt referitoare la fiiere. n final, funciile intermediare referitoare la fiiere vor fi tratate n detaliu pentru o nelegere mai uoar a operaiilor cu fiiere de intrare / ieire. IV-uri de nivel nalt referitoare la fiiere

Figura 9.14. Subpaleta referitoare la fiiere de intrare / ieire

IV-uri intermediare referitoare la fiiere

IV-urile de nivel nalt referitoare la fiierele de intrare / ieire simplific foarte mult lucrul cu acestea. Aceste IV-uri manipuleaz ntr-un mod transparent deschiderea i nchiderea fiierelor, i IV-urile referitoare la fiierele tabelare de intrare / ieire realizeaz conversia matricelor ce conin valori numerice n i din format de ir tabelar, dup cum sunt citite sau scrise pe disc. Aceste IV-uri apeleaz funcii intermediare referitoare la fiiere ca i subIV-uri. Ele simplific cele mai multe tipuri de fiiere de intrare / ieire ntlnite n LabVIEW prin manipularea transparent a funciilor de nivel jos. Aceste IV-uri sunt localizate n subpaleta File I / O a paletei Functions. Ele sunt organizate pe primul rnd, n dou grupe: IV-uri de tip ASCII i subpaleta de IV-uri referitoare la fiiere binare (Binary File VIs). IV-urile creeaz de asemenea un mediu simplificat de manipulare a erorilor, prin care fiecare eroare este afiat ntr-o fereastr de dialog.

IV-urile intermediare referitoare la fiiere se gsesc n rndul al doilea al subpaletei File I / O. Acestea furnizeaz o funcionalitate sporit n comparaie cu IV-urile de nivel nalt, cum ar fi deschiderea i nchiderea programat a fiierelor. Dup ce vei deveni familiar cu LabVIEW vei vedea c IV-urile intermediare referitoare la fiiere realizeaz aproximativ 80-90% din nevoile curente n ceea ce privete lucrul cu fiiere.
Funcii avansate referitoare la fiiere de intrare / ieire

Funciile avansate referitoare la fiiere de intrare / ieire se gsesc n subpaleta File I / O a paletei Functions. Aceste funcii predefinite manipuleaz n detaliu fiierele de intrare / ieire furniznd o flexibilitate maxim.
Fiiere de intrare / ieire cu funcii intermediare

Procesarea de baz a fiierelor de intrare / ieire la nivel intermediar se refer la deschiderea sau crearea unui fiier, citirea sau scrierea acestuia i n final nchiderea lui. Acest paragraf prezint cinci IV-uri:
deschiderea, crearea sau nlocuirea unui fiier (Open / Create / Replace File VI) citirea unui fiier (Read File VI) scrierea unui fiier (Write File VI) nchiderea unui fiier (Close File VI) manipularea erorilor (Simple Error Handler VI)

IV-ul Open / Create / Replace File VI deschide sau nlocuiete un fiier existent, sau creeaz un fiier nou (figura 9.15). Dac calea ctre fiier (file path) rmne neconectat, IV-ul va prezenta o fereastr de dialog prin care se va putea specifica numele i locaia fiierului nou sau existent. Dup ce un fiier a fost deschis sau creat, acesta poate fi utilizat pentru citirea sau scrierea datelor folosind funciile corespunztoare de citire (Read File) sau scriere (Write File). Aceste funcii pot fi utilizate pentru citirea sau scrierea oricrui tip de date.

Figura 9.17. Scrierea ntr-un fiier

Figura 9.15. Deschiderea sau nlocuirea unui fiier existent

Figura 9.18. nchiderea unui fiier

Figura 9.19. Manipularea erorilor

Funcia de citire (Read File) citete un numr de octei din fiier specificat de variabila count. Fiierul din care se citete este identificat de variabila refnum. Valorile vor fi depuse n variabila data. Modul de citire i locaia de unde ncepe citirea sunt specificate de variabilele pos mode i pos offset (figura 9.16).

Salvarea datelor ntr-un fiier nou sau existent

Figura 9.16. Citirea unui fiier

Funcia de scriere (Write File) scrie ntr-un fiier identificat de variabila refnum. Modul de scriere i locaia de unde ncepe scrierea sunt specificate de variabilele pos mode i pos offset (figura 9.17). Funcia de nchidere a unui fiier (Close File) nchide fiierul asociat variabilei refnum i returneaz dimensiunea fiierului n octei. Acest IV nchide toate tipurile de fiiere de date (figura 9.18). Manipularea erorilor (Simple Error Handler VI) se gsete n subpaleta Time&Dialog i verific toate operaiunile referitoare la fiiere (figura 9.19). n cazul apariiei unei erori, aceasta este semnalat printr-o fereastr de dialog.

Salvarea datelor ntr-un fiier nou sau existent este un proces care comport trei pai: deschiderea sau crearea fiierului, scrierea datelor n fiier i, n final, nchiderea acestuia. Folosind IV-urile referitoare la fiiere se pot scrie orice fel de tipuri de date n fiierele care au fost create sau deschise. Dac aceste date vor fi folosite de ctre ali utilizatori sau alte aplicaii, aceste date trebuie scrise sub form de iruri de caractere ASCII. Fiierele pot fi accesate programatic sau prin intermediul unei ferestre de dialog. Pentru a accesa un fiier prin intermediul unei ferestre de dialog este necesar ca intrarea corespunztoare cii fiierului din IV-ul Open / Create / Replace File s rmn neconectat. Prin accesarea programatic a fiierului, adic prin specificarea n diagrama bloc a cii i numelui fiierului se poate salva timp n execuia programului. Dar aceasta depinde de tipul de aplicaie i de necesitile concrete ale acesteia. Forma irului de caractere care va fi coninut de ctre comanda tip cale ctre fiier este cea standard utilizat de sistemul Windows. Pentru evitarea confuziilor, un exemplu este prezentat n continuare: D:\LabVIEW\test.dat. Exemplul din figura 9.20 prezint paii care trebuie urmai pentru scrierea unui ir de date ntr-un fiier existent. Scrierea este de tip programatic, cu specificarea numelui fiierului i a cii ctre acesta. n exemplul anterior, IV-ul Open / Create / Replace File deschide fiierul test.dat. IV-ul genereaz de asemenea o variabil refnum i un grup de erori (error). Variabila refnum este un identificator de fiier generat automat cnd

se deschide sau se creeaz un fiier; acesta identific fiierul n toate operaiile care urmeaz. Grupul de erori este un fascicul de date coninnd mesajele de eroare generate de toate IV-urile precedente. Aceste grupuri reprezint metoda pe care LabVIEW o folosete pentru manipularea erorilor i care se dovedete a fi o unealt foarte puternic i n acelai timp intuitiv.

variabila pos offset a rmas la valoarea implicit zero (deci se ncepe citirea de la nceputul fiierului) iar la intrarea count a funciei Read File este adus ntreaga lungime a fiierului (file size) returnat de IV-ul care realizeaz deschiderea fiierului. Funcia Close File nchide fiierul iar Simple Error Handler gestioneaz eventualele erori care au aprut.

9.4 Tabele i fiiere de intrare / ieire


n LabVIEW se pot formata cu uurin fiiere tip text, care apoi pot fi deschise ntr-un tabel. n multe tabele, caracterul Tab separ coloanele i caracterul End of line separ rndurile. Pentru a insera aceste caractere speciale se folosete funcia de concatenare a irurilor. Diagrama bloc prezentat n exemplul din figura 9.22 prezint crearea unui fiier text. Funcia Format Into String convertete mai nti numrul iteraiei i numrul aleator generat ntr-un ir de caractere. De asemenea nainte de scrierea acestora n funcia include un tab i un end of line fiier.

Figura 9.20. Scrierea unui ir de date ntr-un fiier

De remarcat c variabila refnum precum i grupul de erori trec de la un IV la altul. Deoarece se tie c un IV sau un nod nu poate fi executat dect dac toate intrrile sale sunt active, trecerea acestor doi parametri de la un IV la altul foreaz executarea acestora n ordine. IV-ul Write File scrie aadar datele n fiier numai dup ce acesta a fost creat sau a fost deschis, iar nchiderea se face dup ce datele au fost scrise. n final, grupul de erori ajunge la IV-ul Simple Error Handler care le examineaz i afieaz o fereastr de dialog dac au avut loc erori. De remarcat c, utiliznd aceast logic, apariia unei erori ntr-un IV conduce la neexecutarea IV-urilor urmtoare, grupul de erori ajungnd la IV-ul Simple Error Handler care l prelucreaz i afieaz.
Citirea datelor dintr-un fiier

La citirea datelor dintr-un fiier, n mod evident se deschide fiierul, se citete coninutul acestuia cu funcia Read File iar apoi se nchide fiierul. De asemenea trebuie specificat cantitatea de date care urmeaz a fi citit. Exemplul din figura 9.21 prezint paii care trebuie urmai la citirea ntregului coninut al unui fiier care conine un ir de caractere, folosind selectarea programatic a fiierului.

Figura 9.22. Crearea unui fiier text

Deschiderea fiierului cu un program de calcul tabelar conduce la urmtorul rezultat (figura 9.23).

Figura 9.21. Citirea ntregului coninut al unui fiier

IV-ul Open / Create / Replace File deschide fiierul specificat prin calea definit la intrare: D:\LabVIEW\test.dat. Acesta transfer variabila refnum i grupul de erori ctre funcia de citire propriu-zis (Read File). Aceasta citete din fiierul specificat de refnum ntregul coninut, deoarece

Figura 9.23. Tabelul creat de diagrama bloc din figura 9.22 deschis n Excel

Figura 9.25. Subpaleta referitoare tabele

Tabele

Tabelul este o comand a panoului frontal utilizat pentru a furniza date sub form tabelar. Tipul de date al tabelului este o matrice de caractere bidimensional; tabelele pot avea orice dimensiune, att ct permite memoria calculatorului. Tabelul prezentat n figura 9.24 are cinci rnduri i cinci coloane. Sunt de asemenea vizibile capetele de tabel opionale pentru coloane i pentru rnduri.

Comanda sau indicatorul de tip tabel este de fapt o matrice bidimensional de iruri. Astfel, matricele numerice bidimensionale trebuie mai nti convertite n matrice de iruri bidimensionale pentru ca s poat fi afiate de un indicator de tip tabel. Capetele de rnd i de coloan nu sunt vizibile n mod automat, ca i n tabel. Trebuie create separat o matrice monodimensional de iruri pentru capul de rnd i o alta pentru capul de coloan. Exemplul din figura 9.26 prezint un tabel de numere aleatoare cu dimensiunea 3x7.

Figura 9.24. Exemplu de tabel cu 5 rnduri i 5 coloane Crearea comenzilor i a indicatoarelor de tip tabel

Comenzile i indicatoarele de tip tabel se creeaz prin selectarea opiunii Table din subpaleta List&Table a paletei Controls (figura 9.25). Celulele tabelului se definesc utiliznd unealta de operare sau cea de etichetare. Cu acestea se poate introduce n celule textul dorit.

Citirea caracterelor dintr-un fiier se face cu IV-ul Read Characters From File. Acesta citete un numr specificat de caractere dintr-un fiier ncepnd de la o poziie specificat. IV-ul deschide fiierul nainte de citire i l nchide n mod automat dup aceea (figura 9.28).

Figura 9.28. Citirea caracterelor dintr-un fiier

Scrierea ntr-un fiier tabelar se face cu IV-ul Write To Spreadsheet File. Acesta convertete o matrice numeric de simpl precizie, mono sau bidimensional, ntr-un ir text i scrie acest ir ntr-un fiier nou sau l adaug la un fiier existent (figura 9.29). Opional IV-ul poate realiza transpunerea matricei de date. IV-ul deschide sau creeaz fiierul nainte de scriere i l nchide n mod automat dup aceea. IV-ul creeaz un fiier tabelar tip text pe care cele mai multe aplicaii l pot citi.

Figura 9.29. Scrierea ntr-un fiier tabelar

Figura 9.26. Exemplu de generare a unui tabel 3x7 de numere aleatoare

Scrierea caracterelor n fiier se face cu IV-ul Write Characters To File. Acesta scrie un ir de caractere ntr-un fiier nou sau l adaug la un fiier existent. IV-ul deschide sau creeaz fiierul nainte de scriere i l nchide n mod automat dup aceea (figura 9.27).

Citirea dintr-un fiier tabelar se face cu IV-ul Read From Spreadsheet File. Acesta citete un numr specificat de linii sau coloane dintr-un fiier tip text numeric, ncepnd de la o poziie specificat i convertete datele ntr-o matrice numeric bidimensional de simpl precizie (figura 9.30). IVul deschide fiierul nainte de citire i l nchide n mod automat dup aceea. Acest IV poate fi utilizat pentru citirea n LabVIEW a unui fiier tabelar salvat n mod text. Citirea unor linii dintr-un fiier se face cu IV-ul Read Lines From File. Acesta citete un numr specificat de linii dintr-un fiier n format ASCII, ncepnd de la o poziie specificat. IV-ul deschide fiierul nainte de citire i l nchide n mod automat dup aceea (figura 9.31).

Figura 9.27. Scrierea caracterelor ntr-un fiier

9.6 Aplicaii propuse


1. S se genereze o matrice de 2 coloane i 100 de linii care s conin pe prima coloan o mrime t de tip timp care variaz ntre 0 i 0.04s i pe a doua coloan funcia sin(2ft) (f=50). La apsarea unui buton de pe panoul frontal matricea va fi scris ntr-un fiier de tip text. Apoi la apsarea altui buton, matricea trebuie citit din fiier i reprezentat grafic.
Figura 9.30. Citirea dintr-un fiier tabelar

2. S se genereze o matrice de dimensiuni 5x5 care s conin valori aleatoare ntregi n intervalul [0, 100]. Apoi, la apsarea unui buton, s se nlocuiasc rndul al treilea iar apoi coloana a patra cu zero. Matricea rezultat se va scrie ntr-un fiier de tip text. Scrierea n fiier este de asemenea comandat de un buton de pe panoul frontal. 3. S se genereze 100 de valori aleatoare cuprinse ntre -100 i +100. n cazul n care valoarea generat este pozitiv, s se extrag radicalul i rezultatul s fie memorat ntr-un ir. La final, s se scrie irul astfel obinut ntr-un fiier i, dac este apsat un buton, s se reprezinte i grafic. 4. S se genereze 500 de valori aleatoare cuprinse ntre 0 i 1000. Acestea vor fi grupate n 100 de grupe de cte 5 valori, n ordinea n care au fost generate. Din fiecare grup se calculeaz valoarea maxim care va fi extras i memorat ntr-un alt ir. Acesta va fi reprezentat grafic iar la apsarea unui buton va fi scris ntr-un fiier de tip text. 5. S se genereze o matrice de dimensiuni 10x10 care s conin valori aleatoare cuprinse ntre -100 i +100. S se identifice toate valorile cuprinse ntre -10 i 10 i s se nlocuiasc cu zero (att limitele -10 i 10 ct i valoarea cu care se nlocuiesc, zero, sunt mrimi de intrare care pot fi modificate). La apsarea unui buton, matricea astfel obinut se va scrie ntr-un fiier de tip text. 6. Se presupune ca mrime de intrare un ir de aproximativ 200 de caractere alfanumerice (cifre i litere). La apsarea unui buton se parcurge irul de la nceput la sfrit, se extrag toate cifrele, fiecare dintre ele considerndu-se un numr natural ntre 0 i 9. Acestea vor fi depuse ntrun ir iar la apsarea unui buton se va calcula i se va afia media acestor valori. 7. Se va considera ca mrime de intrare un ir de aproximativ 200 de caractere. Se va parcurge irul de la nceput la sfrit i se vor memora (ntr-un ir) poziiile pe care apare litera a. irul numeric astfel obinut va fi scris ntr-un fiier, la apsarea unui buton. Se va afia de cte ori a aprut litera a i de cte ori a aprut dup o vocal.

Figura 9.31. Citirea unor linii dintr-un fiier

9.5. IV-uri referitoare la fiiere binare


IV-urile referitoare la fiiere binare sunt IV-uri de nivel nalt care citesc din i scriu n fiiere n format binar. Datele pot fi de tip ntreg ([I16])sau n virgul mobil ( [SGL] ). Salvarea datelor n format binar poate fi benefic dac viteza de acces i compactarea sunt necesare. Subpaleta care conine IV-uri referitoare la fiiere binare este prezentat n figura 9.32.

Figura 9.32. Subpaleta referitoare la fiiere binare

Capitolul 9

IRURI I FIIERE DE INTRARE / IEIRE. TABELE


9.1. iruri
Un ir este o succesiune de caractere care pot fi afiabile sau neafiabile. Cel mai adesea se utilizeaz iruri pentru mai mult dect pentru simple mesaje text. De exemplu, n comanda unui instrument se furnizeaz date numerice sub forma unor iruri. Apoi aceste iruri sunt convertite n numere. n multe cazuri, stocarea datelor numerice pe disc face apel la iruri. Aceasta nseamn c nti numerele trebuie convertite n iruri si abia apoi vor fi scrise ntr-un fiier de pe disc.
Crearea comenzilor i a indicatoarelor pentru iruri.

apare stelue (figura 9.4). Diagrama bloc ns va interpreta corect caracterele care au fost tiprite.

Figura 9.2. Meniul comenzii tip ir de caractere

Figura 9.1. Exemplu de comand tip ir de caractere

Comenzile i indicatoarele se gsesc n subpaleta String&Table a paletei Controls. Introducerea sau modificarea unui text n comanda de tip ir se face folosind unealta de etichetare sau unealta de operare. Comenzile de tip ir sunt nite dreptunghiuri redimensionabile, n funcie de cantitatea de text care este necesar a fi introdus. Redimensionarea se face acionnd cu ajutorul uneltei de poziionare asupra unuia din colurile chenarului. De asemenea, pentru a minimiza spaiul alocat de o asemenea comand, n special n cazul textelor de dimensiuni mari, se poate utiliza opiunea Bar de defilare (Scrollbar). Aceasta poate fi activat din meniul aparent al comenzii tip ir (Show Scrollbar) (figura 9.2). De asemenea comenzile i indicatoarele se pot configura pentru diferite tipuri de afiare. De exemplu poate fi ales modul de afiare tip parol (Password Display), prin activarea acestei opiuni din meniul aparent al irului respectiv (figura 9.3). Dac este selectat aceast opiune, n locul caracterelor alfanumerice, n comanda i indicatorul de pe panoul frontal vor

Figura 9.3. Selectarea opiunii Password Display

Figura 9.4. Afiarea n mod parol Comenzile i indicatoarele pentru iruri pot afia i accepta caractere care n mod obinuit nu pot fi afiate, cum ar fi apsarea tastelor Backspace, Enter, Tab i aa mai departe. Pentru a afia aceste caractere trebuie aleas opiunea \ Codes Display din meniul aparent al irului. Rezultatul este prezentat n figura 9.5.

\n \t

Newline (ASCII LF, echivalent cu \0A) Tab (ASCII HT, echivalent cu \09)

9.2. Funcii referitoare la iruri


LabVIEW are o mulime de funcii pentru a uura manipularea irurilor. Aceste funcii sunt disponibile n subpaleta String a paletei Functions. Unele dintre cele mai utilizate funcii vor fi prezentate n cele ce urmeaz. Lungimea unui ir (String Length): returneaz numrul de caractere al irului respectiv (figura 9.6).

Figura 9.6. Calculul lungimii unui ir

Figura 9.5. Afiarea n mod cod: panoul frontal i diagrama bloc

Concatenarea irurilor (Concatenate Strings): concateneaz toate irurile i matricele de iruri de intrare ntr-un singur ir de ieire (figura 9.7). Funcia se prezint cu urmtoarea pictogram plasat n diagrama bloc. Aceast pictogram poate fi redimensoinat (acionnd cu unealta de poziionare asupra unui col al acesteia) pentru a crete numrul de intrri. Implicit numrul de intrri este 2.

n acest mod de afiare, caracterele care n mod obinuit nu pot fi afiate vor apare ca \ urmate de un cod corespunztor. O list parial a codurilor este prezentat n tabelul 9.1. (Pentru a consulta lista complet se poate apela la funcia de ajutor (Help) din LabVIEW). Pentru a introduce un caracter neafiabil ntr-o comand de tip ir, se tasteaz caracterul \ urmat de codul caracterului respectiv. Dup cum se vede din figura 9.5, dup tastarea textului respectiv si apsarea butonului Enter din LabVIEW, fiecare caracter neafiabil va apare n format codat.
Tabelul 9.1

Codul \b \s \r

Interpretarea LabVIEW Backspace (ASCII BS, echivalent cu \08) Space (ASCII SP, echivalent cu \20) Return (ASCII CR, echivalent cu \0D)

Figura 9.7. Concatenarea irurilor

Crearea unui subir (String Subset): returneaz un subir ncepnd de la un anume caracter (precizat prin poziia acestuia n irul de intrare, denumit offset) i coninnd un numr de caractere precizat prin variabila lungime (length). De remarcat c poziia primului caracter este zero (figura 9.8).

pentru a avea la intrare mai multe valori care vor fi convertite simultan ntrun singur ir. Funcia poate formata irul de ieire n funcie de irul iniial (initial string), argumentele (arguments) i innd cont de formatul dorit (format string).

Figura 9.8. Crearea unui subir

Cutarea unui anumit subir (Match Pattern): returneaz subirul care este cutat. Aceast funcie caut o expresie regulat (regular expression) ntr-un ir (string), ncepnd de la o anumit poziie (offset) iar n cazul n care aceast expresie este gsit, irul este mprit n trei subiruri. Dac expresia nu este gsit, variabila de ieire match substring nu va conine nici un caracter iar poziia (offset past mach) va avea valoarea 1 (figura 9.9).

Figura 9.10. Conversia unui numr ntr-un ir

n exemplul din figura 9.10 se convertete numrul n virgul mobil 220.37 ntr-un ir cu 6 caractere 220.37.

Figura 9.9. Cutarea unui anumit subir

n multe situaii este necesar convertirea numerelor n iruri i invers. Funcia de conversie Format Into String realizeaz conversia unui numr ntr-un ir i funcia Scan From String convertete un ir ntr-un numr. Ambele funcii pot realiza manipularea erorilor. Funcia de conversie Format Into String convertete orice format al argumentului (de exemplu numeric) ntr-un format specificat, variabila de ieire denumindu-se resulting string. Aceast funcie poate fi expandat

Figura 9.11. Conversia unui ir ntr-un numr

Funcia invers, Scan From String convertete un ir care conine caractere numerice valide (cifrele 0 pn la 9, +,-,e,E, i perioada) ntr-un numr. Funcia ncepe scanarea irului introdus (input string) la o locaie bine

precizat (initial search location). Funcia scaneaz irul introdus pentru diferite tipuri de date (de exemplu numerice sau booleene) bazndu-se pe formatul specificat al irului (format string). i aceast funcie este expandabil pentru a avea mai multe ieiri. n exemplul din figura 9.11, funcia convertete irul Tensiunea este: 220.37 n numrul 220.37. Aceast funcie va ncepe scanarea la al 16-lea caracter. (Locaia pentru primul caracter este zero). Ambele funcii Format Into String i Scan From String au o interfa denumit Edit Format String prin intermediul creia se precizeaz caracteristicile irului respectiv. Caracteristicile irului includ formatul, precizia, tipul de date i lungimea irului convertit. Aceast interfa poate fi accesat din meniul aparent al nodului sau prin executarea unui dublu clic pe funcia respectiv. Dup ce se precizeaz caracteristicile irului i se selecteaz opiunea Create String, fereastra de dialog creeaz constanta ir i o conecteaz la intrarea format string. n exemplul din figura 9.12 se prezint utilizarea interfeei Edit Format String pentru a crea un ir n virgul mobil, cu o precizie de dou cifre, cu o lungime total de 6 caractere, cu completare cu zerouri.

Figura 9.12. Stabilirea formatului numeric

Exist i funcii suplimentare de formatare a irurilor, n subpaleta String Additional String To Number Functions. Aceste funcii pot fi utilizate pentru tipuri de date specifice. De exemplu funcia To Fractional realizeaz conversia unui numr ntr-un ir formatat n virgul mobil (figura 9.13).

Figura 9.13. Conversia unui numr ntr-un ir formatat n virgul mobil

Funcia From Exponential / Fract / Eng realizeaz conversia unui ir care conine caractere numerice valide ntr-un numr n virgul mobil. Funcia ncepe scanarea la o poziie din ir precizat iniial (figura 9.14).

Figura 9.13. Conversia unui ir ntr-un numr n virgul mobil

9.3 Fiiere de intrare / ieire


Operaiile cu fiiere de intrare / ieire au ca scop stocarea pe disc i preluarea informaiilor stocate pe acesta. LabVIEW are multe funcii i IV-uri predefinite pentru a manipula fiierele de intrare / ieire. Toate funciile referitoare la fiierele de intrare / ieire se gsesc n subpaleta File I / O a paletei Functions (figura 9.14). Aceste funcii i IV-uri sunt organizate pe trei nivele ierarhice: d. IV-uri de nivel nalt referitoare la fiiere e. Funcii intermediare referitoare la fiiere f. Funcii avansate referitoare la fiiere
n continuare vor fi prezentate funciile intermediare i IV-urile de nivel nalt referitoare la fiiere. n final, funciile intermediare referitoare la fiiere vor fi

tratate n detaliu pentru o nelegere mai uoar a operaiilor cu fiiere de intrare / ieire. IV-uri de nivel nalt referitoare la fiiere

vedea c IV-urile intermediare referitoare la fiiere realizeaz aproximativ 80-90% din nevoile curente n ceea ce privete lucrul cu fiiere.
Funcii avansate referitoare la fiiere de intrare / ieire

IV-urile de nivel nalt referitoare la fiierele de intrare / ieire simplific foarte mult lucrul cu acestea. Aceste IV-uri manipuleaz ntr-un mod transparent deschiderea i nchiderea fiierelor, i IV-urile referitoare la fiierele tabelare de intrare / ieire realizeaz conversia matricelor ce conin valori numerice n i din format de ir tabelar, dup cum sunt citite sau scrise pe disc. Aceste IV-uri apeleaz funcii intermediare referitoare la fiiere ca i subIV-uri. Ele simplific cele mai multe tipuri de fiiere de intrare / ieire ntlnite n LabVIEW prin manipularea transparent a funciilor de nivel jos. Aceste IV-uri sunt localizate n subpaleta File I / O a paletei Functions. Ele sunt organizate pe primul rnd, n dou grupe: IV-uri de tip ASCII i subpaleta de IV-uri referitoare la fiiere binare (Binary File VIs). IV-urile creeaz de asemenea un mediu simplificat de manipulare a erorilor, prin care fiecare eroare este afiat ntr-o fereastr de dialog.

Funciile avansate referitoare la fiiere de intrare / ieire se gsesc n subpaleta File I / O a paletei Functions. Aceste funcii predefinite manipuleaz n detaliu fiierele de intrare / ieire furniznd o flexibilitate maxim.
Fiiere de intrare / ieire cu funcii intermediare

Procesarea de baz a fiierelor de intrare / ieire la nivel intermediar se refer la deschiderea sau crearea unui fiier, citirea sau scrierea acestuia i n final nchiderea lui. Acest paragraf prezint cinci IV-uri:
deschiderea, crearea sau nlocuirea unui fiier (Open / Create / Replace File VI) citirea unui fiier (Read File VI) scrierea unui fiier (Write File VI) nchiderea unui fiier (Close File VI) manipularea erorilor (Simple Error Handler VI) IV-ul Open / Create / Replace File VI deschide sau nlocuiete un fiier existent, sau creeaz un fiier nou (figura 9.15). Dac calea ctre fiier (file path) rmne neconectat, IV-ul va prezenta o fereastr de dialog prin care se va putea specifica numele i locaia fiierului nou sau existent. Dup ce un fiier a fost deschis sau creat, acesta poate fi utilizat pentru citirea sau scrierea datelor folosind funciile corespunztoare de citire (Read File) sau scriere (Write File). Aceste funcii pot fi utilizate pentru citirea sau scrierea oricrui tip de date. -

Figura 9.14. Subpaleta referitoare la fiiere de intrare / ieire

Figura 9.15. Deschiderea sau nlocuirea unui fiier existent

Funcia de citire (Read File) citete un numr de octei din fiier specificat de variabila count. Fiierul din care se citete este identificat de variabila refnum. Valorile vor fi depuse n variabila data. Modul de citire i locaia de unde ncepe citirea sunt specificate de variabilele pos mode i pos offset (figura 9.16).
IV-uri intermediare referitoare la fiiere

IV-urile intermediare referitoare la fiiere se gsesc n rndul al doilea al subpaletei File I / O. Acestea furnizeaz o funcionalitate sporit n comparaie cu IV-urile de nivel nalt, cum ar fi deschiderea i nchiderea programat a fiierelor. Dup ce vei deveni familiar cu LabVIEW vei

Figura 9.16. Citirea unui fiier

Funcia de scriere (Write File) scrie ntr-un fiier identificat de variabila refnum. Modul de scriere i locaia de unde ncepe scrierea sunt specificate de variabilele pos mode i pos offset (figura 9.17). Funcia de nchidere a unui fiier (Close File) nchide fiierul asociat variabilei refnum i returneaz dimensiunea fiierului n octei. Acest IV nchide toate tipurile de fiiere de date (figura 9.18). Manipularea erorilor (Simple Error Handler VI) se gsete n subpaleta Time&Dialog i verific toate operaiunile referitoare la fiiere (figura 9.19). n cazul apariiei unei erori, aceasta este semnalat printr-o fereastr de dialog.

Figura 9.17. Scrierea ntr-un fiier

Fiierele pot fi accesate programatic sau prin intermediul unei ferestre de dialog. Pentru a accesa un fiier prin intermediul unei ferestre de dialog este necesar ca intrarea corespunztoare cii fiierului din IV-ul Open / Create / Replace File s rmn neconectat. Prin accesarea programatic a fiierului, adic prin specificarea n diagrama bloc a cii i numelui fiierului se poate salva timp n execuia programului. Dar aceasta depinde de tipul de aplicaie i de necesitile concrete ale acesteia. Forma irului de caractere care va fi coninut de ctre comanda tip cale ctre fiier este cea standard utilizat de sistemul Windows. Pentru evitarea confuziilor, un exemplu este prezentat n continuare: D:\LabVIEW\test.dat. Exemplul din figura 9.20 prezint paii care trebuie urmai pentru scrierea unui ir de date ntr-un fiier existent. Scrierea este de tip programatic, cu specificarea numelui fiierului i a cii ctre acesta. n exemplul anterior, IV-ul Open / Create / Replace File deschide fiierul test.dat. IV-ul genereaz de asemenea o variabil refnum i un grup de erori (error). Variabila refnum este un identificator de fiier generat automat cnd se deschide sau se creeaz un fiier; acesta identific fiierul n toate operaiile care urmeaz. Grupul de erori este un fascicul de date coninnd mesajele de eroare generate de toate IV-urile precedente. Aceste grupuri reprezint metoda pe care LabVIEW o folosete pentru manipularea erorilor i care se dovedete a fi o unealt foarte puternic i n acelai timp intuitiv.

Figura 9.18. nchiderea unui fiier


Figura 9.20. Scrierea unui ir de date ntr-un fiier Figura 9.19. Manipularea erorilor

Salvarea datelor ntr-un fiier nou sau existent

Salvarea datelor ntr-un fiier nou sau existent este un proces care comport trei pai: deschiderea sau crearea fiierului, scrierea datelor n fiier i, n final, nchiderea acestuia. Folosind IV-urile referitoare la fiiere se pot scrie orice fel de tipuri de date n fiierele care au fost create sau deschise. Dac aceste date vor fi folosite de ctre ali utilizatori sau alte aplicaii, aceste date trebuie scrise sub form de iruri de caractere ASCII.

De remarcat c variabila refnum precum i grupul de erori trec de la un IV la altul. Deoarece se tie c un IV sau un nod nu poate fi executat dect dac toate intrrile sale sunt active, trecerea acestor doi parametri de la un IV la altul foreaz executarea acestora n ordine. IV-ul Write File scrie aadar datele n fiier numai dup ce acesta a fost creat sau a fost deschis, iar nchiderea se face dup ce datele au fost scrise. n final, grupul de erori ajunge la IV-ul Simple Error Handler care le examineaz i afieaz o fereastr de dialog dac au avut loc erori. De remarcat c, utiliznd aceast logic, apariia unei erori ntr-un IV conduce la neexecutarea IV-urilor urmtoare, grupul de erori ajungnd la IV-ul Simple Error Handler care l prelucreaz i afieaz.

Citirea datelor dintr-un fiier

La citirea datelor dintr-un fiier, n mod evident se deschide fiierul, se citete coninutul acestuia cu funcia Read File iar apoi se nchide fiierul. De asemenea trebuie specificat cantitatea de date care urmeaz a fi citit. Exemplul din figura 9.21 prezint paii care trebuie urmai la citirea ntregului coninut al unui fiier care conine un ir de caractere, folosind selectarea programatic a fiierului.

Figura 9.22. Crearea unui fiier text Figura 9.21. Citirea ntregului coninut al unui fiier

IV-ul Open / Create / Replace File deschide fiierul specificat prin calea definit la intrare: D:\LabVIEW\test.dat. Acesta transfer variabila refnum i grupul de erori ctre funcia de citire propriu-zis (Read File). Aceasta citete din fiierul specificat de refnum ntregul coninut, deoarece variabila pos offset a rmas la valoarea implicit zero (deci se ncepe citirea de la nceputul fiierului) iar la intrarea count a funciei Read File este adus ntreaga lungime a fiierului (file size) returnat de IV-ul care realizeaz deschiderea fiierului. Funcia Close File nchide fiierul iar Simple Error Handler gestioneaz eventualele erori care au aprut.

Deschiderea fiierului cu un program de calcul tabelar conduce la urmtorul rezultat (figura 9.23).

Figura 9.23. Tabelul creat de diagrama bloc din figura 9.22 deschis n Excel

9.4 Tabele i fiiere de intrare / ieire


n LabVIEW se pot formata cu uurin fiiere tip text, care apoi pot fi deschise ntr-un tabel. n multe tabele, caracterul Tab separ coloanele i caracterul End of line separ rndurile. Pentru a insera aceste caractere speciale se folosete funcia de concatenare a irurilor. Diagrama bloc prezentat n exemplul din figura 9.22 prezint crearea unui fiier text. Funcia Format Into String convertete mai nti numrul iteraiei i numrul aleator generat ntr-un ir de caractere. De asemenea nainte de scrierea acestora n funcia include un tab i un end of line fiier.
Tabele

Tabelul este o comand a panoului frontal utilizat pentru a furniza date sub form tabelar. Tipul de date al tabelului este o matrice de caractere bidimensional; tabelele pot avea orice dimensiune, att ct permite memoria calculatorului. Tabelul prezentat n figura 9.24 are cinci rnduri i cinci coloane. Sunt de asemenea vizibile capetele de tabel opionale pentru coloane i pentru rnduri.

Figura 9.24. Exemplu de tabel cu 5 rnduri i 5 coloane Crearea comenzilor i a indicatoarelor de tip tabel

Comenzile i indicatoarele de tip tabel se creeaz prin selectarea opiunii Table din subpaleta List&Table a paletei Controls (figura 9.25). Celulele tabelului se definesc utiliznd unealta de operare sau cea de etichetare. Cu acestea se poate introduce n celule textul dorit.

Figura 9.25. Subpaleta referitoare tabele

Comanda sau indicatorul de tip tabel este de fapt o matrice bidimensional de iruri. Astfel, matricele numerice bidimensionale trebuie mai nti convertite n matrice de iruri bidimensionale pentru ca s poat fi afiate de un indicator de tip tabel. Capetele de rnd i de coloan nu sunt vizibile n mod automat, ca i n tabel. Trebuie create separat o matrice monodimensional de iruri pentru capul de rnd i o alta pentru capul de coloan. Exemplul din figura 9.26 prezint un tabel de numere aleatoare cu dimensiunea 3x7.

Figura 9.26. Exemplu de generare a unui tabel 3x7 de numere aleatoare

Scrierea caracterelor n fiier se face cu IV-ul Write Characters To File. Acesta scrie un ir de caractere ntr-un fiier nou sau l adaug la un fiier existent. IV-ul deschide sau creeaz fiierul nainte de scriere i l nchide n mod automat dup aceea (figura 9.27).

ncepnd de la o poziie specificat. IV-ul deschide fiierul nainte de citire i l nchide n mod automat dup aceea (figura 9.31).

Figura 9.27. Scrierea caracterelor ntr-un fiier

Citirea caracterelor dintr-un fiier se face cu IV-ul Read Characters From File. Acesta citete un numr specificat de caractere dintr-un fiier ncepnd de la o poziie specificat. IV-ul deschide fiierul nainte de citire i l nchide n mod automat dup aceea (figura 9.28).

Figura 9.30. Citirea dintr-un fiier tabelar

Figura 9.28. Citirea caracterelor dintr-un fiier

Scrierea ntr-un fiier tabelar se face cu IV-ul Write To Spreadsheet File. Acesta convertete o matrice numeric de simpl precizie, mono sau bidimensional, ntr-un ir text i scrie acest ir ntr-un fiier nou sau l adaug la un fiier existent (figura 9.29). Opional IV-ul poate realiza transpunerea matricei de date. IV-ul deschide sau creeaz fiierul nainte de scriere i l nchide n mod automat dup aceea. IV-ul creeaz un fiier tabelar tip text pe care cele mai multe aplicaii l pot citi.

Figura 9.31. Citirea unor linii dintr-un fiier

9.5. IV-uri referitoare la fiiere binare


IV-urile referitoare la fiiere binare sunt IV-uri de nivel nalt care citesc din i scriu n fiiere n format binar. Datele pot fi de tip ntreg ([I16])sau n virgul mobil ( [SGL] ). Salvarea datelor n format binar poate fi benefic dac viteza de acces i compactarea sunt necesare. Subpaleta care conine IV-uri referitoare la fiiere binare este prezentat n figura 9.32.

Figura 9.29. Scrierea ntr-un fiier tabelar

Citirea dintr-un fiier tabelar se face cu IV-ul Read From Spreadsheet File. Acesta citete un numr specificat de linii sau coloane dintr-un fiier tip text numeric, ncepnd de la o poziie specificat i convertete datele ntr-o matrice numeric bidimensional de simpl precizie (figura 9.30). IVul deschide fiierul nainte de citire i l nchide n mod automat dup aceea. Acest IV poate fi utilizat pentru citirea n LabVIEW a unui fiier tabelar salvat n mod text. Citirea unor linii dintr-un fiier se face cu IV-ul Read Lines From File. Acesta citete un numr specificat de linii dintr-un fiier n format ASCII,

Figura 9.32. Subpaleta referitoare la fiiere binare

9.6 Aplicaii propuse


8. S se genereze o matrice de 2 coloane i 100 de linii care s conin pe prima coloan o mrime t de tip timp care variaz ntre 0 i 0.04s i pe a doua coloan funcia sin(2ft) (f=50). La apsarea unui buton de pe panoul frontal matricea va fi scris ntr-un fiier de tip text. Apoi la apsarea altui buton, matricea trebuie citit din fiier i reprezentat grafic. 9. S se genereze o matrice de dimensiuni 5x5 care s conin valori aleatoare ntregi n intervalul [0, 100]. Apoi, la apsarea unui buton, s se nlocuiasc rndul al treilea iar apoi coloana a patra cu zero. Matricea rezultat se va scrie ntr-un fiier de tip text. Scrierea n fiier este de asemenea comandat de un buton de pe panoul frontal. 10. S se genereze 100 de valori aleatoare cuprinse ntre -100 i +100. n cazul n care valoarea generat este pozitiv, s se extrag radicalul i rezultatul s fie memorat ntr-un ir. La final, s se scrie irul astfel obinut ntr-un fiier i, dac este apsat un buton, s se reprezinte i grafic. 11. S se genereze 500 de valori aleatoare cuprinse ntre 0 i 1000. Acestea vor fi grupate n 100 de grupe de cte 5 valori, n ordinea n care au fost generate. Din fiecare grup se calculeaz valoarea maxim care va fi extras i memorat ntr-un alt ir. Acesta va fi reprezentat grafic iar la apsarea unui buton va fi scris ntr-un fiier de tip text. 12. S se genereze o matrice de dimensiuni 10x10 care s conin valori aleatoare cuprinse ntre -100 i +100. S se identifice toate valorile cuprinse ntre -10 i 10 i s se nlocuiasc cu zero (att limitele -10 i 10 ct i valoarea cu care se nlocuiesc, zero, sunt mrimi de intrare care pot fi modificate). La apsarea unui buton, matricea astfel obinut se va scrie ntr-un fiier de tip text. 13. Se presupune ca mrime de intrare un ir de aproximativ 200 de caractere alfanumerice (cifre i litere). La apsarea unui buton se parcurge irul de la nceput la sfrit, se extrag toate cifrele, fiecare dintre ele considerndu-se un numr natural ntre 0 i 9. Acestea vor fi depuse ntrun ir iar la apsarea unui buton se va calcula i se va afia media acestor valori.

14. Se va considera ca mrime de intrare un ir de aproximativ 200 de caractere. Se va parcurge irul de la nceput la sfrit i se vor memora (ntr-un ir) poziiile pe care apare litera a. irul numeric astfel obinut va fi scris ntr-un fiier, la apsarea unui buton. Se va afia de cte ori a aprut litera a i de cte ori a aprut dup o vocal.

Capitolul 10

CONFIGURAREA INSTRUMENTULUI VIRTUAL


Exist numerose opiuni de configurare a instrumentului virtual care pot fi modificate. Aceste opiuni pot fi accesate dac din meniul aparent al pictogramei IV-ului se alege VI Properties. Dup cum se prezint n figura 10.1, va apare o fereastr de dialog care va conine toate opiunile de configurare. Exist opiuni referitoare la execuie (Execution Options), opiuni referitoare la ferestre (Window Options) i opiuni referitoare la documentaie (Documentation Options). Pentru a selecta o opiune, trebuie marcat csua corespunztoare acesteia. Pentru a deselecta o opiune, se terge marcarea corespunztoare prin executarea unui clic pe csua respectiv.

selectat aceast opiune, panoul frontal al IV-ului se deschide cnd acesta este ncrcat n memorie, chiar dac este vorba de un subIV. Vizualizarea panoului frontal al unui IV cnd acesta este apelat, se face selectnd opiunea Show Front Panel When Called. Dac este selectat aceast opiune, panoul frontal al IV-ului se deschide cnd acesta este executat ca i un subIV.

Figura 10.2. Fereastra de opiuni referitoare la execuie

Figura 10.1. Meniul de opiuni al unui IV

Opiuni referitoare la execuie (figura 10.2)

Vizualizarea panoului frontal al unui IV cnd acesta se ncarc, se face selectnd opiunea Show Front Panel When Loaded. Dac este

Opiunea Close Afterwards if Originally Closed are ca efect nchiderea panoului frontal al unui subIV dup ce acesta a fost executat, dac n prealabil acesta a fost deschis prin selectarea opiunii Show Front Panel When Called. Prin selectarea opiunii Run When Open, un IV este executat n mod automat la deschiderea lui. Nu mai este necesar comanda execuiei cu ajutorul butonului Run. Selectarea opiunii Suspend When Called este echivalent cu apsarea butonului de pauz (Breakpoint) din paleta Execution. Dac se are n vedere apelarea unui IV ca i un subIV de mai multe ori ntrun program, trebuie avut grij ca aceste apeluri s nu foloseasc acelai spaiu de date. Selectarea opiunii Reentrant Execution previne faptul ca un subIV s foloseasc acelai spaiu de date. Prioritatea unui IV. Deoarece procesorul poate executa la un moment dat doar codul corespunztor unui singur nod, LabVIEW menine o ordine a prioritilor pentru toate nodurile care trebuie executate. Pentru a programa execuia tuturor nodurilor, ordonatorul de prioritate i atribuie fiecrui nod o mic durat de timp de execuie, n funcie de prioritatea acestuia. Fiecare

nod este executat att timp ct i-a fost alocat, apoi este trecut la coad iar urmtorul nod va fi executat, tot durata de timp alocat, .a.m.d. Cnd un nod a fost executat complet, el este ters din coad. n mod normal operatorul nu ar trebui s cunoasc aceste detalii despre organizarea procesului de execuie. n anumite cazuri ns, este necesar atribuirea de prioriti unor anumite noduri, n detrimentul altora. Exist cinci nivele de prio-ritate: de la 0 la 3 i nivelul subrutin. Nivelul 0 are prioritatea cea mai joas iar nivelul subrutin are prioritatea cea mai ridicat. S considerm de exemplu c n coad se afl cinci IV-uri, dintre care dou de prioritate 3, dou de prioritate 2 i unul de prioritate 1. IV-urile de prioritate 3 i vor mpri ntre ele timpul de execuie pn cnd ambele sunt executate complet. Apoi urmeaz cele dou IV-uri de prioritate 2, la fel pn sunt executate complet i la urm este executat IV-ul de prioritate 1.
Opiuni referitoare la fereastr

Prin selectarea opiunii Hilite<Return>Boolean LabVIEW marcheaz pe panoul frontal o comand asociat butonului <Return>, n timp ce IV-ul este n execuie sau n mod de execuie.
Opiuni referitoare la istoricul IV-ului (figura 10.5)

Fereastra corespunztoare opiunilor referitoare la istoricul IV-urilor este prezentat n figura 10.5. Pentru a utiliza oricare dintre cele patru opiuni, trebuie mai nti deselectat prima opiune (Use the Default History Settings from the Options Dialog).

Opiunile referitoare la ferestre se aplic IV-ului doar cnd acesta este n execuie. Aceste opiuni se utilizeaz pentru a controla posibilitatea utilizatorului de a interaciona cu programul, prin restricionarea accesului la unele faciliti LabVIEW i prin forarea utilizatorului s rspund opiunilor prezente pe panou. Referitor la fereastr sunt disponibile dou opiuni, una dintre ele referindu-se la dimensiunea ferestrei (figura 10.3) iar cea de-a doua la modelul de fereastr (figura 10.4).

Figura 10.4. Fereastra de opiuni referitoare la modelul ferestrei

Figura 10.3. Fereastra de opiuni referitoare la dimensiunea ferestrei

Prin selectarea opiunii Add an Entry to the History Every Time the VI is Saved LabVIEW adaug ntotdeauna un istoric de fiecare dat cnd instrumentul e salvat. Dac este selectat opiunea Prompt for History Comment When this VI is Closed apare o fereastr de istoric n care se poate aduga cte un comentariu de fiecare dat cnd un IV este nchis i care s-a modificat fa de momentul cnd a fost ncrcat. Dac este selectat opiunea Prompt for History Comment When this VI is Saved apare o fereastr de istoric de fiecare dat cnd este salvat un IV, i n care se poate aduga cte un comentariu. Opiunea Record History Comments Generated by LabVIEW face ca LabVIEW s insereze comentarii n fereastra de istoric, ori de cte ori se ntmpl cte un eveniment, cum ar fi modificarea subIV-ului, schimbri de nume sau de cale de salvare.

Opiuni referitoare la documentaie n plus fa de cele menionate n paragraful 3.3, se precizeaz urmtoarele:

Show Front Panel when called opiune care dac e activ, IV-ul

deschide panoul frontal ori de cte ori este executat ca i o subrutin.


Close afterwards if originally closed. Dac este selectat opiunea

Opiunile Help Tag i Help Path permit accesarea pictogramei de ajutor din partea de jos a ferestrei de dialog Help, i accesarea unui fiier de ajutor asociat cu acel subIV. Help Tag se tasteaz direct intrarea topicului de ajutor asociat cu acel IV Help Path se tasteaz calea ctre fiierul de ajutor asociat topicului ales, sau se acceseaz funcia de cutare (Browse...) i se gsete astfel fiierul de ajutor.

Show Front Panel when called, IV-ul deschide panoul frontal ori de cte ori este executat ca i o subrutin. Prin selectarea opiunii Close afterwards if originally closed IV-ul i va nchide panoul frontal la terminarea execuiei. Suspend when called - opiune care dac e activ, este suspendat execuia IV-ului apelant cnd este apelat un subIV. Aceast opiune are acelai efect ca i configurarea unui punct de oprire (Breakpoint).

Figura 10.6. Configurarea nodurilor unui subIV Figura 10.5. Fereastra de opiuni referitoare la istoricul IV-ului Configurarea nodurilor subIV. Dac pentru un IV xyz.vi este selectat opiunea Show Front Panel when called din opiunile referitoare la execuie din meniul VI Setup al IV-ului xyz.vi, atunci panoul frontal al acelui IV va fi vizibil ori de cte ori acesta este apelat ca i un subIV. Aceast opiune afecteaz execuia oricrui IV care apeleaz subIV-ul xyz.vi. Dac se selecteaz opiunea Show Front Panel when called din meniul SubVI Node Setup panoul frontal pentru IV-ul xyz.vi se va deschide doar dac este executat acel nod n acea diagram. Aceast opiune nu afecteaz execuia altor IV-uri care utilizeaz pe xyz.vi ca i subIV.

Exist mai multe opiuni de configurare ale unui subIV care pot fi modificate. Aceste opiuni se acceseaz prin apelarea meniului aparent corespunztor pictogramei din diagrama bloc a IV-ului apelant. De aici se selecteaz opiunea SubVI Node Setup. Apare o fereastr de dialog, prezentat n figura 10.6, unde sunt vizibile toate posibilitile de configurare. Aceste opiuni din fereastra de dialog sunt:
Open Front Panel when loaded opiune care dac e activ, IV-ul

deschide panoul frontal ori de cte ori este ncrcat n memorie ca i o subrutin.

Capitolul 11

ACHIZIIA DE DATE
11.1 Generaliti
Biblioteca de achiziie de date din LabVIEW conine IV-uri pentru comanda plcilor de achiziie de date furnizate de firma National Instruments. Cel mai adesea o plac poate executa mai multe operaii, cum ar fi: conversia analognumeric, con-versia numeric-analogic, intrri / ieiri numerice i operaii de numrare i temporizare.
Componentele unui sistem de achiziie de date

Intrrile legate la pmnt sunt toate raportate la un punct de pmntare comun. Aceste intrri se utilizeaz cnd semnalele de intrare sunt de un nivel ridicat (mai mari ca 1V), firele de legtur de la sursa de semnal pn la intrarea n sistem sunt scurte (mai scurte ca 5 m) i toate semnalele de intrare utilizeaz aceeai referin de legare la pmnt. Dac semnalele nu ndeplinesc aceste criterii, trebuie utilizate intrrile difereniale. La acestea, fiecare intrare poate avea un potenial diferit raportat la pmnt. Intrrile difereniale de asemenea reduc sau elimin zgomotul de eroare, deoarece zgomotul care este datorat firelor de legtur i care este cel mai comun, este anulat.

Sarcina fundamental a unui sistem de achiziie de date este aceea de a msura sau a genera semnale reale. nainte ca un sistem bazat pe calculator s poat msura un semnal fizic, trebuie ca acest semnal fizic s fie convertit ntr-un semnal electric (tensiune sau curent) de ctre un senzor sau un traductor. Cel mai adesea placa de achiziie de date este considerat de fapt ntregul sistem e achiziie de date; totui placa reprezint doar una din componentele sistemului. n mod diferit fa de sistemele independente, uneori semnalele nu pot fi conectate direct la placa de achiziie de date. Un accesoriu care condiioneaz semnalele trebuie s condiioneze aceste semnale nainte ca placa de achiziie de date s le converteasc n semnale numerice. n final, programul comand sistemul de achiziie de date, care achiziio-neaz datele primare, le analizeaz i afieaz rezultatele. Figura 11.1 prezint dou configuraii distincte ale unui sistem de achiziie de date. n varianta A placa de achiziie de date este introdus n calculator. n varianta B placa de achiziie se gsete n exteriorul calculatorului. Cu acest sistem se pot realiza sisteme de achiziie de date folosind calculatoare care nu au la dispoziie locuri pentru plci, cum ar fi de exemplu calculatoarele portabile tip laptop sau notebook. Calculatorul i sistemul de achiziie utilizeaz pentru comunicaie diferite tipuri de magistrale, cum ar fi de exemplu portul paralel sau PCMCIA. Aceste tipuri de sisteme sunt practic concepute pentru achiziia de date i comanda de la distan a aplicaiilor.
Intrrile analogice

Cnd se msoar semnale analogice cu o plac de achiziie de date, trebuie luai n considerare urmtorii factori care afecteaz calitatea semnalului discretizat: modul (intrare legat la pmnt sau diferenial), rezoluia, domeniul, rata de ean-tionare, acurateea i zgomotul.

Figura 11.1. Configuraii posibile pentru un sistem de achiziie de date

Rezoluia reprezint numrul de bii pe care l folosete convertorul analognumeric pentru reprezentarea semnalului analogic. Cu ct rezoluia este mai mare, cu att este mai mare numrul de intervale n care este mprit domeniul i prin urmare schimbrile detectabile de tensiune vor fi cu att mai mici. Figura 11.2 prezint o form de und sinusoidal precum i forma discretizat a acesteia obinut printr-un convertor analog-numeric de 3 bii.

semnalului, se poate efectiv micora domeniul convertorului i aceasta i permite s foloseasc ct mai multe diviziuni pentru reprezentarea semnalului. De exemplu, folosind un convertor analog-numeric pe 3 bii i o setare de domeniu de la 0 la 10V, n figura 11.3 se prezint efectul aplicrii unei amplificri a semnalului care variaz ntre 0 i 5V. Dac nu se aplic nici o amplificare semnalului (sau ampli-ficarea este egal cu 1), convertorul utilizeaz doar patru din cele opt diviziuni n procesul de conversie. Dac se amplific semnalul nainte de discretizare cu un factor egal cu doi, convertorul va utiliza toate cele opt diviziuni, i prin urmare repre-zentarea numeric va fi mult mai fidel. Efectiv placa de achiziie are acum un domeniu admis de intrare cuprins ntre 0 i 5V, deoarece orice semnal mai mare ca 5 V, cnd este amplificat cu doi conduce la o intrare a convertorului mai mare dect 10 V.

Figura 11.3. Amplificarea unui semnal Figura 11.2. Discretizarea unei forme de und sinusoidale

Convertorul analog-numeric de 3 bii (care este rareori utilizat n practic dar care reprezint un bun exemplu n cazul de fa) mparte domeniul n 23 = 8 diviziuni. Un cod numeric ntre 000 i 111 caracterizeaz fiecare diviziune. Se observ c semnalul numeric rezultat nu este o reprezentare fidel a semnalului analogic de intrare, deoarece o parte din informaie s-a pierdut n procesul de conversie. Prin creterea rezoluiei la 16 bii, numrul de coduri al convertorului crete de la 8 la 65535 (=216) i astfel se va obine o reprezentare extrem de fidel a semnalului analogic de intrare. Domeniul se refer la valorile minim i maxim de tensiune pe care convertorul analog-numeric le poate cuantiza. Plcile de achiziie de date ofer domenii selectabile (de obicei 0 10 V sau 10 10 V), astfel ca semnalul de intrare s poat fi potrivit astfel nct s se exploateze ct mai bine domeniul pus la dispoziie de intrarea plcii de achiziie. Amplificarea se refer la orice mrire sau atenuare a semnalului care poate avea loc nainte ca semnalul s fie convertit. Prin aplicarea unei amplificri

Domeniul, rezoluia i amplificarea unei plci de achiziie de date determin cea mai mic modificare detectabil a tensiunii de intrare. Aceast modificare a tensiunii reprezint cel mai puin semnificativ bit (LSB least significant bit) a mrimii numerice i este cel mai adesea denumit lime de cod (code width). Cea mai mic modificare detectabil se calculeaz ca i domeniul de tensiune / (amplificarea*2rezoluia n bii). De exemplu o plac de achiziie de date de 12 bii, cu un domeniu de intrare de 0 pn la 10 V i o amplificare de 1 poate detecta o modificare de 2.4mV, n timp ce aceeai plac cu un domeniu de intrare de -10 pn la 10 V va putea detecta doar o modificare de 4.8mV.
domeniul 10 20 = = 2.4 mV; = 4.8 mV rezolutia 12 amplificarea * 2 1* 2 1 * 212

Rata de eantionare determin ct de des are loc conversia analog-numeric. O rat de eantionare mai rapid achiziioneaz mai multe puncte ntr-un timp dat i astfel poate adesea s realizeze o mai bun reprezentare a semnalului original dect o rat de eantionare mai sczut. Toate semnalele

de intrare trebuie eantionate cu o rat suficient de ridicat pentru a reproduce cu exactitate semnalul analogic. Eantionarea prea lent poate conduce la o reprezentare mai slab a semnalului analogic. Figura 11.4 prezint o eantionare corespunztoare a semnalului, precum i efectele unei subeantionri. Aceast reprezentare necorespunztoare a semnalului (denumit n englez alias), face ca semnalul s apar ca avnd o alt frecven dect are n realitate. n concordan cu teorema de eantionare a lui Nyquist, frecvena de eantionare a unui semnal trebuie s fie mai mare dect de dou ori frecvena maxim care se dorete a fi achiziionat corect pentru a discretiza semnalul. De exemplu, semnalele audio convertite n semnale electrice au adesea o frecven care atinge 20 kHz. Astfel, pentru acestea este nevoie de o rat de eantionare de cel puin 40 kHz pentru a achiziiona semnalul n mod corect. Pe de alt parte, traductoarele de temperatur nu necesit de obicei o rat de eantionare ridicat, deoarece n cele mai multe cazuri variaia temperaturii este un proces lent. Astfel, pentru msurarea temperaturii nu este necesar o plac de achiziie care s suporte o rat de eantionare ridicat.

IV-urile pentru achiziii de date din LabVIEW sunt organizate n subpalete, corespunztor tipului de operaie pe care o efectueaz. Astfel sunt: intrri analogice, ieiri analogice, operaii de numrare i intrri / ieiri numerice. Subpaleta prezentat n figura 11.5 se obine prin selectarea opiunii Data Acquisition din meniul aparent al diagramei-bloc. Ierarhic, aceast subpalet conine la rndul ei 6 subpalete, dup cum urmeaz: Analog Input (intrri analogice), Analog Output (ieiri analogice), Digital I / O (intrri / ieiri numerice), Counter (numrtoare), Calibration and Configuration (calibrare i configurare) i Signal Conditioning (condiionarea semnalelor). Fiecare din aceste subpalete conine la rndul ei instrumente virtuale sau alte subpalete, organizate ca i Easy I / O VIs (IV-uri de intrare ieire de nivel uor), Intermediade VIs (IV-uri de nivel intermediar), Utility VIs (IV-uri utile) i Advanced VIs (IV-uri de nivel avansat).

Figura 11.5. Subpaleta de achiziii de date

Eantionare incorect

Figura 11.4. Eroarea de subeantionare (aliasing)

Medierea. Semnalele nedorite distorsioneaz semnalul analogic nainte ca acesta s fie convertit n semnal numeric. Aceast surs poate fi extern sau intern calculatorului. Zgomotul de eroare exterior poate fi limitat prin folosirea unor module de condiionare a semnalului. De asemenea, o alt metod de minimizare a efectelor acestui zgomot este aceea de a supraeantiona semnalul i apoi de a media punctele supraeantionate. Nivelul de zgomot este redus cu un factor egal cu:
1

IV-uri de intrare / ieire de nivel uor

(numarul de puncte mediate)

De exemplu dac se mediaz 100 de puncte, efectul zgomotului n semnal este redus cu un factor de 1 / 10.

11.2 Organizarea IV-urilor pentru achiziia de date

IV-urile de intrare / ieire de nivel uor se compun din IV-uri de nivel nalt care execut operaii de baz referitoare la intrrile analogice, ieirile analogice, intrrile / ieirile numerice i cele care utilizeaz numrtoare i temporizatoare. Acestea sunt ideale pentru operaiile simple de achiziie de date. De asemenea acestea includ i o metod simpl de manipulare a erorilor. La apariia unei erori n procesul de achiziie de date, o csu de dialog va avertiza asupra acestui fapt, afind informaii despre eroarea care a avut loc i dnd utilizatorului posibilitatea s opreasc execuia programului n acel loc sau s continue, neglijnd eroarea.
IV-uri de nivel intermediar

Acestea dispun de mai multe opiuni comparativ cu IV-urile de nivel uor, oferind o mai mare flexibilitate, funcionalitate i eficien n dezvoltarea aplicaiilor.
IV-urile de nivel avansat

Acestea reprezint cea mai joas interfa cu instrumentele de achiziie de date.


IV-urile utile

Grupeaz n mod convenabil IV-urile de nivel intermediar, care sunt utilizate cel mai des n realizarea aplicaiilor de achiziie de date.

11.3 Intrrile analogice


Instrumentele cuprinse n subpaleta de intrri analogice (Analog Input) a paletei de achiziii de date realizeaz conversia analog-numeric a semnalelor (figura 11.6).

n multe aplicaii ns achiziionarea unui singur punct nu se dovedete a fi suficient de rapid. n acest caz se prefer achiziionarea mai multor puncte simultan, prin folosirea instrumentului AI Acquire Waveform (figura 11.8). Acesta are ca mrimi de intrare, pe lng cele prezentate n cazul achiziionrii unui singur punct, numrul de eantioane (number of samples) i rata de eantionare (sample rate) msurat n numr de eantioane pe secund. De asemenea instrumentul furnizeaz la ieire, pe lng forma de und achiziionat i perioada de eantionare care, n mod obinuit este inversul ratei de eantionare introdus la intrare. Totui pot exista unele mici diferene, mrimea de ieire furniznd valoarea la care s-a fcut propriu-zis achiziia i care este influenat de o serie de ali factori printre care capacitatea plcii de achiziie.
Figura 11.8. Achiziionarea simultan a mai multor puncte

Figura 11.6. Subpaleta de intrri analogice

11.4. Ieirile analogice


Instrumentele cuprinse n subpaleta de ieiri analogice (Analog Output) a paletei de achiziii de date realizeaz conversia numeric-analogic a semnalelor. Pentru furnizarea unui singur punct de semnal adus la ieirea plcii de achiziie de date, se folosete instrumentul AO Update Channel (figura 11.9). Figura 11.9. Generarea unui singur punct Acest instrument are ca i mrimi de intrare numrul plcii de achiziie, numrul canalului pe care se va genera valoarea i valoarea care va fi generat. n mod analog cu blocurile de intrri analogice, n multe aplicaii generarea unui singur punct la un moment dat se poate dovedi insuficient. De asemenea este dificil meninerea unei frecvene fixe n cazul generrii mai multor valori. Pentru a depi aceste inconveniente se folosete un instrument care va genera mai multe puncte, cu o rat stabilit iniial. Acest instrument se numete AO Generate Waveform (figura 11.10). Ca i mrimi de intrare acest instrument are, pe lng numrul plcii i al canalului, rata de actualizare (update rate) n actualizri / sec. i forma de

Pentru achiziionarea unui singur punct al semnalului adus la intrarea plcii de achiziie de date, se folosete instrumentul AI Sample Channel (figura 11.7).
Figura 11.7. Achiziionarea unui singur punct

Instrumentul msoar semnalul de pe canalul corespunztor i returneaz valoarea msurat a tensiunii. Prima intrare, device, specific numrul plcii de achiziie de date iar a doua intrare, channel precizeaz canalul pe care se face achiziia. Mrimile high limit i low limit specific domeniul de tensiune al semnalului de intrare. n mod implicit semnalul este cuprins ntre -10 i +10 V. Dac are loc o eroare n timpul procesului de achiziie de date, o fereastr de dialog va preciza acest lucru, dnd posibilitatea ntreruperii programului n punctul respectiv.

und care va fi generat (waveform). Forma de und este o matrice monodimensional care conine punctele ce vor fi generate pe canalul specificat al plcii de achiziie.
Figura 11.10. Generarea unei forme de und

11.5 Scanarea mai multor canale de intrri analogice


Pn acum s-au prezentat instrumente virtuale de achiziie i generare de semnal care lucrau cu un singur canal al plcii de achiziie. Poate exista ns necesitatea lucrului cu mai multe canale ale plcii, simultan. n cazul achiziiei de semnal de la mai multe canale ale plcii de achiziie de date, simultan, se folosete instrumentul AI Acquire Waveforms.

Figura 11.12. Exemplu pentru achiziionarea semnalelor provenind de la patru canale

Figura 11.11. Achiziia de semnal de la mai multe canale simultan

Instrumentul este asemntor cu cel prezentat anterior n cazul achiziionrii mai multor puncte simultan de la un singur canal al plcii. Singurele deosebiri sunt acelea c mrimea de intrare care precizeaz canalul de achiziie este un ir (string) n care sunt specificate n ordine cresctoare i separate prin virgul, toate canalele de la care se achiziioneaz semnal, iar mrimea de ieire este o matrice bidimen-sional, care conine, pe coloane, toate mrimile achiziionate, n voli. Un exemplu de utilizare a acestui instrument pentru achiziionarea simultan a semnalului de la patru canale ale unei plci de achiziie de date este prezentat n figura 11.12.

Se observ c pentru separarea valorilor achiziionare de la diverse canale sau extras coloanele corespunztoare folosind instruciunea Index Array. Pentru reprezentarea grafic a semnalului achiziionat (figura 11.13) se poate pur i simplu lega la ieirea instrumentului de achiziie un grafic de tip Waveform Graph, cu precizarea c matricea va trebui transpus. Aceasta se poate realiza prin utilizarea unui bloc de transpunere a matricilor sau, mai simplu, utiliznd meniul graficului i selectnd opiunea Transpose Array. Aceast reprezentare are un dezavantaj, deoarece mrimea pe axa x nu poate fi precizat. n mod automat pe axa x va apare numrul de ordine al punctului achiziionat. Pentru a putea specifica corect mrimea pe axa x (n general timpul), se poate realiza un instrument ca i cel din figura 11.14. Subpaleta de achiziii de date mai conine blocuri de intrri / ieiri numerice utilizate pentru a citi respectiv scrie valori numerice.

Figura 11.13. Reprezentarea grafic a unei forme de und achiziionate

Figura 11.15. Exemplificarea eantionrii unui semnal sinusoidal

a.

Figura 11.14. Reprezentarea grafic a unei forme de und achiziionate cu precizarea mrimii pe axa X

11.6 Aplicaie
Program pentru eantionarea unui semnal, cu semnalarea cazului de subeantionare (aliasing). Programul este conceput astfel nct s genereze un semnal sinusoidal sau dreptunghiular, cu amplitudine fix (1) i frecven variabil, care se poate modifica prin program. Frecvena de eantionare este de asemenea modificabil prin program. n figura 11.15 a s-a exemplificat eantionarea unui semnal sinusoidal de frecven 50 Hz, cu frecvena de eantionare 264.93 Hz. Pentru semnalarea fenomenului de subean-tionare (aliasing) s-a prevzut un indicator boolean de culoare roie, care devine activ atunci cnd frecvena de eantionare scade sub de dou ori frecvena semnalului generat (figura 11.15 b). De asemenea programul furnizeaz i spectrul de frecven al semnalului eantionat. Diagrama bloc a aplicaiei este prezentat n figura 11.16

Figura 11.16.Diagrama bloc a aplicaiei din figura 11.15

Capitolul 12

VARIABILE LOCALE I GLOBALE


n exemplele prezentate, datele au fost citite sau actualizate pe panoul frontal utiliznd terminalele lor din diagrama bloc. Un element de pe panoul frontal are ns un singur terminal corespondent n diagrama bloc, iar, n multe cazuri, este necesar ca acesta s fie accesat, citit sau modificat n mai multe locuri, simultan, n diagrama bloc. Utiliznd variabilele locale, obiectele de pe panoul frontal pot fi accesate n diferite locuri ale diagramei bloc, realiznd transferul de date fr a fi conectate ntre ele.

Figura 12.2. Crearea unei variabile locale - b

12.1 Crearea i utilizarea variabilelor locale


Exist dou moduri diferite de a crea variabile locale n diagrama bloc. a. Dac obiectul de pe panoul frontal a fost deja creat, variabila local se poate crea prin utilizarea meniului aparent al acestuia i selectarea comenzii Create Local Variable (figura 12.1). Aceast metod poate fi utilizat att pe panoul frontal ct i n diagrama bloc. Pictograma unei variabile locale creat pentru un obiect de pe panoul frontal va fi plasat n diagrama bloc, lng terminalul acelui obiect. n diagrama bloc va apare o pictogram a variabilei locale, avnd simbolul . Selectarea corespondentului acesteia de pe panoul frontal se face din meniul aparent variabilei locale utiliznd comanda Select Item (figura 12.3 b), sau cu ajutorul uneltei de operare (figura 12.3 c).

Figura 12.1. Crearea unei variabile locale - a

a. b. Figura 12.3. Selectarea unei variabile locale: a-panoul frontal; b-utilitnd meniul aparent; c-utiliznd unealta de operare

b. Un alt mod de creare a variabilelor locale este acela prin selectarea blocului Local Variable din paleta Structures (figura 12.2).

c.

Comanda Select Item va lista doar etichetele comenzilor i indicatoarelor de pe panoul frontal. Deci, pentru a putea crea o variabil local plecnd de la o comand sau un indicator de pe panoul frontal, trebuie neaparat ca aceasta s aib asociat o etichet. Datele pot fi att scrise ntr-o variabil local, ct i citite din aceasta. Dup crearea unei variabile locale, trebuie precizat tipul acesteia. n mod implicit, o variabil local este o mrime de ieire, care accept date. Ea va aciona ca i un indicator i va fi denumit write local. Tipul unei variabile locale poate fi schimbat, astfel nct aceasta s acioneze ca i o surs de date. Aceasta se face cu ajutorul meniului asociat variabilei i selectarea comenzii Change To Read (figura 12.4).

n prima etap vor fi prezentate dou metode posibile, care ns nu realizeaz dezideratul propus n totalitate, fiecare avnd unele deficiene. n final va fi prezentat metoda corect, care utilizeaz noiunea de variabil local.

Figura 12.6. Exemplu de utilizare a variabilelor locale panoul frontal Figura 12.4. Schimbarea tipului unei variabile locale

Metoda 1 (incorect) (figura 12.7)

O variabil local de tipul read local se va comporta n diagrama bloc ca i o comand. Pentru a remodifica tipul variabilei locale din read local n write local se va utiliza meniul aparent al acesteia, din care se va selecta comanda Change To Write. n diagrama bloc, variabilele locale de tip real local i write local se pot deosebi cu uurin, deoarece prezint aceleai caracteristici ca i comenzile (chenar ngroat) respectiv indicatoarele (chenar subire) (figura 12.5).
Figura 12.5. Variabile locale de tip read local (a) i write local (b)

Figura 12.7. Exemplu de utilizare a variabilelor locale soluia incorect 1

a.

b.

n continuare se vor studia dou exemple pentru a ilustra necesitatea utilizrii variabilelor locale. Primul exemplu (figura 12.6) se refer la utilizarea unei variabile de tip read local. S presupunem c avem de generat, sincron, dou forme de und sinusoidale, utiliznd dou bucle While. Cele dou bucle trebuie s fie comandate de un singur comutator situat pe panoul frontal.

Terminalul de comand al celor dou bucle de tip While este situat n afar i este conectat la terminalele de comand ale celor dou bucle. n acest caz, terminalul de comand al buclelor este citit o singur dat, nainte de

executarea buclelor respective. Apoi, o dat ce execuia programului s-a transferat n bucl, nu va mai fi sesizat nici un fel de modificare de stare a comutatorului de comand aflat pe panoul frontal. n concluzie, o dat lansate n execuie, cele dou bucle vor rula la infinit. Deci soluia nu funcioneaz. Metoda 2 (incorect) (figura 12.8)

modificare de stare a comutatorului de pe panoul frontal va fi transmis simultan ctre terminalele de comand ale celor dou bucle. n acest mod, cele dou bucle vor putea fi comandate s lucreze simultan. Cel de-al doilea exemplu se refer la utilizarea unei variabile de tip write local (figura 12.10). Presupunem c avem o aplicaie care conine dou bucle de tip While care sunt executate alternativ. Pe panoul frontal exist un singur indicator de tip ir de caractere care va trebui s arate care dintre cele dou bucle este n curs de executare la un moment dat. Problema poate fi rezolvat cu uurin prin folosirea variabilelor locale de tip write local.

Figura 12.8. Exemplu de utilizare a variabilelor locale soluia incorect 2

Figura 12.9. Exemplu de utilizare a variabilelor locale soluia corect

Terminalul de comand este plasat n interiorul primei bucle i va fi conectat cu terminalele de comand ale celor dou bucle. Dac n ceea ce privete prima bucl, totul se desfoar corect, problemele apar la cea de-a doua bucl. Aceasta nu va primi semnalul de comand dect dup de se ncheie execuia primei bucle. i n acest caz terminalul su de comand va primi valoarea fals ceea ce nseamn c bucla 2 va fi executat o singur dat, doar dup terminarea execuiei buclei 1. Deci cele dou bucle nu vor putea practic s funcioneze simultan, i, prin urmare, nici aceast soluie nu este viabil.
Metoda 3 (corect) (figura 12.9)

Terminalul indicatorului de tip ir de caractere este plasat n prima bucl, iar o variabil local a acestuia este plasat n cea de-a doua bucl. n acest mod, terminalul de pe panoul frontal poate fi actualizat din dou locaii distincte ale diagramei bloc (figura 12.11).
Figura 12.10. Exemplu de utilizare a variabilelor locale panoul frontal

Ca i la metoda precedent, teminalul de comand este plasat n interiorul primei bucle, dar, cea de-a doua bucl va fi comandat de o variabil local de tipul read local a comutatorului de pe panoul frontal. n acest caz, orice

Figura 12.11. Exemplu de utilizare a variabilelor locale diagrama bloc Figura 12.12. Crearea unei variabile globale

12.2 Crearea i utilizarea variabilelor globale


Variabilele locale sunt utilizate pentru accesarea obiectelor de pe panoul frontal din diferite locaii ale diagramei bloc. Acestea sunt accesibile doar n cadrul unui singur IV. S presupunem c este necesar ca s fie transferate date ntre dou sau mai multe IV-uri care sunt n execuie n acelai timp. Acest lucru este posibil prin utilizarea variabilelor globale. Variabilele globale sunt similare variabilelor locale, dar, n loc s fie limitate la un singur IV, acestea pot transfera date ntre mai multe IV-uri. Variabilele globale sunt obiecte LabVIEW care apar ca i IV-uri speciale n memoria calculatorului. O variabil global are un panou frontal, unde pot fi plasate comenzi i indicatoare de orice tip. Totui, o variabil global nu are diagram bloc. Etapele crerii unei variabile globale sunt urmtoarele: 1. Din subpaleta Structures a paletei de funcii se selecteaz opiunea Global Variable (figura 12.12). n diagrama bloc va aprea nodul variabilei globale . Pictograma unei variabile globale este asemntoare cu aceea a unei variabile locale, cu deosebirea c n stnga numelui variabilei (sau a semnului de ntrebare, dac nc nu a fost atribuit o variabil) apare un glob.

2. Se deschide panoul frontal al variabilei globale, prin executarea unui dublu clic pe pictograma plasat n diagrama bloc. 3. Se adaug pe panoul frontal al variabilei globale comenzi i indicatoare, n mod identic cum se procedeaz n cazul unui IV obinuit. Trebuie atenie ca fiecare comand sau indicator adugat s aib ataat o etichet, deoarece prin aceasta se va referi n continuare (figura 12.13).

Figura 12.13. Panoul frontal al unei variabile globale

4. Se salveaz variabila global sub un nume oarecare i se revine la diagrama bloc a IV-ului iniial. 5. Se selecteaz apoi obiectul din variabila global care se dorete a fi accesat. Pentru selectarea obiectului, se poate proceda n dou moduri, la fel ca i n cazul variabilelor locale: a. Din meniul aparent al variabilei globale se alege meniul Select Item i se selecteaz obiectul care se dorete a fi accesat (figura 12.14)

global. n acest caz pot fi scrise date n variabila global, ea acionnd ca i un indicator. Configuraia unei variabile globale poate fi schimbat, ea acionnd ca i o surs de date, denumit read global. Aceast operaiune se face prin intermediul meniului aparent al variabilei globale, cu comanda Change To Read (figura 12.16).

Figura 12.16. Schimbarea tipului unei variabile globale Figura 12.14. Selectarea unei variabile globale utiliznd meniul aparent

b. Utiliznd unealta de operare, se execut un clic pe pictograma variabilei globale i se selecteaz apoi obiectul dorit (figura 12.15).
Figura 12.15. Selectarea unei variabile globale utiliznd unealta de operare

n acest caz, variabila global va aciona ca i o comand. n mod analog se poate face i conversia invers, selectnd comanda Change To Write. n diagrama bloc, variabilele globale de tip real global i write global se pot deosebi cu uurin, deoarece prezint aceleai caracteristici ca i comenzile (chenar ngroat) respectiv indicatoarele (chenar subire) (figura 12.17).
a. b.

Figura 12.17. Variabile globale de tip read global (a) i write global (b)

Dup selectarea unui anume obiect, pictograma variabilei globale se modific, incluznd eticheta obiectului la care se refer, de ex.: . Pentru utilizarea variabilei globale create i n alte IV-uri, se ncarc variabila global cu numele cu care a fost salvat, n mod identic cu ncrcarea unui subIV (cu comanda Functions Select a VI ...) dup care se selecteaz obiectul dorit, conform etapei 5. O variabil global poate conine mai multe obiecte care vor fi accesibile global. Nu este necesar ca pentru fiecare obiect s fie creat un IV de tip variabil global. La fel ca i variabilele locale, i variabilele globale pot fi de tipul read global i write global. n mod implicit, o variabil global este de tip write

S considerm urmtorul exemplu, derivat din aplicaia prezentat n figura 12.6. Presupunem c avem dou IV-uri care ruleaz simultan, fiecare dintre ele realiznd graficul unei forme de und sinusoidale pe cte o diagram, folosind bucle de tip While. Primul IV conine (figura 12.18), pe lng comenzile de iniializare pentru grafic, i un buton de comand care servete la oprirea din execuie a ambelor IV-uri.

Figura 12.20. Exemplu de utilizare a variabilelor globale al doilea IV Figura 12.18. Exemplu de utilizare a variabilelor globale primul IV

12.3 Consideraii referitoare la utilizarea variabilelor locale i globale


nainte de utilizarea variabilelor locale i globale, trebuie acordat o deosebit atenie iniializrii acestora. Este posibil ca aceste variabile s conin anumite date nainte de executare, ceea ce ar putea conduce la erori n execuia IV-ului. Este de subliniat faptul ca variabilele locale i globale din LabVIEW nu se comport la fel ca i variabilele locale i globale din limbajele de programare convenionale. LabVIEW este un limbaj de programare grafic i nu un limbaj de programare secvenial. Utilizarea excesiv a variabilelor locale i globale poate conduce la erori neateptate. S considerm urmtoarea secven de cod scris ntr-un limbaj de programare secvenial (Pascal, C ...):
x = x*5 x=x+2

Figura 12.19. Panoul frontal al variabilei globale

n cazul n care ambele bucle se gseau ntr-un singur IV, soluia era ca terminalul butonului de comand s fie plasat n interiorul primei bucle, urmnd ca cea de-a doua bucl (figura 12.20) s fie comandat de o variabil local a acestuia. n acest caz ns, deoarece buclele ruleaz n IV-uri separate, este necesar ca ce-a de-a doua bucl s fie comandat de o variabil global a butonului de comand (figura 12.19).

Utiliznd variabilele locale, aceast secven s-ar putea transcrie n LabVIEW ca n figura 12.21. La executarea codului secvenial, soluia pentru o valoare iniial a variabilei x este clar, deoarece instruciunile sunt executate n ordine, de sus n jos. n

schimb, la executarea codului LabVIEW nu se poate prevedea o soluie final, deoarece fiecare nod este executat n momentul n care sunt disponibile la intrarea sa toate datele.

Figura 12.21. Transcrierea incorect a codului secvenial

Nu exist nici o garanie c operaiile vor fi executate ntr-o anumit ordine sau n alta. Pentru aceasta, exemplul considerat n cod secvenial se poate transcrie n LabVIEW ca n figura 12.22, fr utilizarea variabilelor locale:
Figura 12.22. Transcrierea corect a codului secvenial

n acest mod se poate garanta faptul c nmulirea este executat naintea adunrii, i deci rezultatul va fi unul previzibil. Variabilele locale i globale sunt nite unelte puternice, care pot fi utile n numeroase situaii care nu pot fi rezolvate n alt mod. Totui aceste noiuni nu fac parte din conceptul LabVIEW. Diagramele vor fi mai greu de urmrit dac se utilizeaz variabile locale i globale. n plus, accesarea variabilelor locale i globale va conduce la o ncetinire a executrii IV-urilor i la o utilizare suplimentar de memorie. n concluzie, se recomand utilizarea variabilelor locale i globale doar atunci cnd problema nu se poate rezolva n alt mod.

Probability and Statistics. Conine IV-uri pentru calculul probabili-

Capitolul 13

tilor, interpolarea funciilor etc.

BIBLIOTECA MATEMATIC LabVIEW. APLICAII N DOMENIUL INGINERIEI ELECTRICE


13.1. Prezentare general
LabVIEW ofer o bibliotec matematic extrem de vast pentru rezolvarea i analiza diferitelor tipuri de ecuaii, sisteme de ecuaii i funcii. Avantajul oferit este acela c toate instrumentele virtuale care compun biblioteca matematic sunt scrise n G, astfel c programatorul poate cu uurin s modifice pe oricare dintre acestea, adaptndu-le cerinelor concrete ale problemei cu care se confrunt. O alt caracteristic important a acestor instrumente este aceea c ele permit introducerea funciilor complexe n mod direct, prin intermediul panoului frontal, sub form de ir de caractere. Avnd n vedere aceste aspecte, biblioteca matematic LabVIEW devine foarte uor de utilizat pentru cercettori, ingineri i orice persoane care doresc rezolvarea unor probleme matematice ntr-un mod simplu, rapid i eficient. De asemenea ele pot fi utilizate i n scop didactic, pentru aprofundarea i extinderea cunotinelor n domeniul matematicii. Biblioteca matematic LabVIEW se compune din 10 grupe de IV-uri, dup cum se prezint n continuare:

Curve Fitting. IV-urile din bibliotec execut analiza i aproximarea

curbelor.

Linear Algebra. IV-urile din aceast bibliotec servesc operaiilor

complexe cu matrice, cum ar fi produsul a dou matrice, calculul determinanilor precum i rezolvarea sistemelor de ecuaii liniare.

Array Operation. IV-urile sunt utilizate la analiza numeric mono sau

bidimensional.

Optimization. Instrumentele din aceast bibliotec sunt folosite pentru

determinarea minimelor i maximelor locale ale funciilor 1D i ndimensionale. Se poate selecta ntre algoritmi bazai pe derivatele funciilor i algoritmi care nu utilizeaz aceste derivate. De asemenea sunt puse la dispoziie i o serie de metode speciale de calcul.

Zeroes. Instrumentele sunt utile pentru determinarea zerourilor funciilor

1D sau n-dimensionale, liniare sau neliniare.

Numeric Functions. Sunt folosite pentru calculul funciilor matematice

uzuale, cum ar fi: funciile Bessel, Beta, polinoamele Cebyshev, funciile Gamma i Spike etc.

Formula. n aceast bibliotec sunt coninute IV-uri care sunt folosite

13.2. Rezolvarea ecuaiilor i a sistemelor de ecuaii difereniale


Avnd n vedere c majoritatea circuitelor i a mainilor electrice pot fi descrise prin ecuaii difereniale, n continuare va fi dezvoltat i se vor prezenta cteva exemple din acest domeniu. Subpaleta cu instrumente referitoare la rezolvarea ecuaiilor difereniale se gsete n paleta de funcii, i anume: Functions Mathematics Calculus ODE Differential Equations. Paleta de instrumente disponibile este prezentat n figura 13.1

la evaluarea irurilor de caractere, a elementelor sau matricelor multi-variabile, sau la substituirea de variabile.

1D and 2D Evaluation. Aceste IV-uri sunt utilizate la examinarea

funciilor 1D i 2D date sub form simbolic la care se poate face parametrizarea. Cu ajutorul IV-urilor din aceast bibliotec pot fi calculate punctele de extrem i derivatele pariale.

Calculus. Instrumentele din bibliotec servesc la rezolvarea ecuaiilor

i a sistemelor de ecuaii difereniale ordinare. Metodele disponibile sunt: Cash Karp de ordinul 5, Euler, Linear de ordinul n numeric, Linear de ordinul n simbolic, Runge-Kutta de ordinul 4.

k1 = hF ( X (t n ), t n )

Figura 13.1. IV-uri pentru rezolvarea ecuaiilor difereniale

n continuare vor fi analizate pe rnd cele 7 metode.

k h k 2 = hF X (t n ) + 1 , t n + 2 2 k h k3 = hF X (t n ) + 2 , t n + 2 2 k 4 = hF ( X (t n ) + k3 , t n + h ) X (t n +1 ) = X (t n ) + t n +1 = t n + h k1 k 2 k3 k 4 + + + 6 3 3 6

13.2.1. Metoda Runge-Kutta de ordinul 4 (ODE Runge Kutta 4th Order)


Metoda Runge-Kutta rezolv ecuaii difereniale ordinare cu condiii iniiale. Metoda lucreaz cu un pas fix dar cu un mai mare grad de acuratee dect metoda Euler. Pentru rezolvare, ecuaiile trebuie puse sub urmtoarea form:
dx1 1 = ( g (t ) bx1 cx 2 ...) dt a dx 2 1 = (h(t ) ex1 fx 2 ...) dt d

Metoda se ncheie cnd tn time end

13.2.2. Metoda Cash Karp de ordinul 5 (ODE Cash Karp 5th Order )
Metoda Cash Karp rezolv ecuaii difereniale ordinare cu condiii iniiale. Metoda lucreaz cu un pas adaptiv i este, din punct de vedere al calculelor, mai eficient dect metodele Euler sau Runge-Kutta. Pentru rezolvare, ecuaiile trebuie puse sub aceeai form ca i la metoda Runge-Kutta.

Figura 13.2. IV-ul pentru metoda Runge-Kutta

Figura 13.3. IV-ul pentru metoda Cash Karp Mrimile de intrare i de ieire din IV (figura 13.3) sunt asemntoare cu cele ale metodei Runge-Kutta. Apare ns n plus o mrime de intrare numeric, acurateea (accuracy). Metoda Cash Karp include formula de calcul a metodei Runge Kutta i este bazat pe o strategie n ase pai, ilustrat prin ecuaiile urmtoare:
k1 = hF ( X (t n ), t n ) k 2 = hF ( X (t n ) + a2 h, t n + b21k1 )
M
k 6 = hF ( X (t n ) + a6 h, t n + b61k1 + ... + +b65 k 5 ) X (t n +1 ) = X (t n ) + c1k1 + ... + c6 k 6 X * (t n +1 ) = X (t n ) + c1*k1 + ... + c6*k 6 tn+1 = tn+ h

Mrimile de intrare n bloc (figura 13.2) sunt: matricea de variabile X, timpul de nceput i de sfrit, pasul de rezolvare, matricea condiiilor iniiale X0, variabila timp i matricea membrilor din dreapta ai ecuaiilor, introdui sub form de ir de caractere F(X,t). Mrimile de ieire sunt: o matrice monodimensional a timpului, o matrice bidimensional, n care, pe coloane, se regsesc rezultatele rezolvrii ecuaiei sau a sistemului de ecuaii, precum i dou indicatoare numerice reprezentnd timpul de rezolvare (ticks) i codul de eroare (dac este cazul). Principiul de lucru al metodei este sintetizat n ecuaiile urmtoare:

unde coeficienii a2 ,..., a6 , b21 ,..., b65 , c1 ,..., c6 , c1* ,..., c6* sunt numere reale fixe, a cror alegere determin calitatea metodei. Pasul actual poate fi determinat cu ajutorul valorii accuracy, a vechiului pas h i a diferenei:
= X (t n +1 ) X * (t n +1 )

Figura 13.5. IV-ul pentru rezolvarea ecuaiei difereniale liniare numerice de ordinul n Mrimile de intrare n IV (figura 13.5) difer fa de metodele prezentate pn acum, i anume este necesar matricea A a coeficienilor i numrul de puncte n care se mparte intervalul de timp dintre time start i time end. S considerm ecuaia diferenial liniar omogen de ordinul n:
x (n ) + an 1 x (n 1) + ... + a1 x (1) + a0 x = 0

astfel:
hnew accuracy =h
1 5

Este posibil ca ultimul element din matricea-indicator a timpului s fie mai mare dect valoarea specificat la intrare prin comanda time end. Aceasta se poate ntmpla din cauza faptului c metoda, care este foarte precis, lucreaz cu pas adaptiv, care nu poate fi controlat.

cu

13.2.3. Metoda Euler (ODE Euler Method)


Metoda Euler rezolv ecuaii difereniale ordinare cu condiii iniiale.
Figura 13.4. IV-ul pentru metoda Euler

x(0 ) = x00 x (1) (0 ) = x


M

10

x (n 1) (0 ) = xn 10

Exist o strns legtur ntre ecuaia de rezolvat i problema gsirii zerourilor:


z n + an 1 z n 1 + ... + a1 z + a0 = 0

Mrimile de intrare i de ieire din IV (figura 13.4) sunt identice cu cele ale metodei Runge-Kutta. Metoda Euler este cea mai uzual metod de rezolvare a ecuaiilor difereniale ordinare. Ea lucreaz cu un pas fix i se bazeaz pe urmtoarele ecuaii:
X (t 0 + 2h ) = X (t 0 + h ) + hF ( X (t 0 + h ), t 0 + h ) X (t 0 + h ) = X (t 0 ) + hF ( X (t 0 ), t 0 )

Cele n zerouri ale ecuaiei de mai sus determin structura soluiei ecuaiei difereniale. Dac exist n zerouri complexe distincte, soluia general a ecuaiei difereniale poate fi exprimat astfel:
x(t ) = 1 exp(1t ) + ... + n exp( n t )

Necunoscutele vor fi determinate din condiiile iniiale:


x(0 ) = 1 + ... + n x (1) (0 ) = 11 + ... + n n

Metoda se oprete atunci cnd timpul atinge valoarea specificat la intrare prin comanda time end.

. . .x (n 1) (0) = 11n 1 + ... + n n n 1

13.2.4. Metoda numeric de rezolvare a ecuaiilor difereniale liniare de ordinul n (ODE Linear nth Order Numeric)
Metoda rezolv ecuaii difereniale liniare omogene de ordinul n, cu coeficieni numerici constani.

13.2.5. Metoda simbolic de rezolvare a ecuaiilor difereniale liniare de ordinul n (ODE Linear nth Order Symbolic)
Metoda rezolv ecuaii difereniale liniare omogene de ordinul n, cu coeficieni simbolici constani.

Figura 13.6. IV-ul pentru rezolvarea ecuaiei difereniale liniare simbolice de ordinul n

Soluia general este aceeai ca i n cazul metodei numerice:


x(t ) = 1 exp(1t ) + ... + n exp( n t )

IV-ul este prezentat n figura 13.6.

13.2.7. Metoda simbolic de rezolvare a sistemelor de ecuaii difereniale liniare (ODE Linear System Symbolic)
Rezolv un sistem de ecuaii difereniale liniare. Soluia se bazeaz pe determinarea valorilor proprii i a vectorilor proprii ai matricei A. Soluia este furnizat sub form simbolic. IV-ul este prezentat n figura 13.8.
Figura 13.8. IV-ul pentru rezolvarea unui sistem simbolic

13.2.6. Metoda numeric de rezolvare a sistemelor de ecuaii difereniale liniare (ODE Linear System Numeric)
Rezolv un sistem de ecuaii difereniale liniare i omogene, cu coeficieni constani. Soluia se bazeaz pe determinarea valorilor proprii i a vectorilor proprii ai matricei A. Soluia este furnizat sub form numeric.
Figura 13.7. IV-ul pentru rezolvarea unui sistem numeric

13.3. Aplicaii
Se prezint n continuare patru aplicaii ale rezolvrii ecuaiilor i a sistemelor de ecuaii difereniale n domeniul mainilor electrice. Aplicaiile sunt concepute pentru a nelege modul de simulare n LabVIEW i nu se vor da detalii referitoare la modul de funcionare al mainilor sau de obinere a ecuaiilor.

Mrimile de intrare n bloc (figura 13.7) sunt: matricea bidimensional A a coeficienilor, vectorul X0 al condiiilor iniiale, numrul de puncte i intervalul de timp. Mrimile de ieire sunt vectorul timp, matricea bidimensional a soluiilor i eroarea (dac este cazul). Sistemele liniare pot fi descrise de ecuaia:
dX (t ) = AX (t ) dt X (0 ) = X 0

13.3.1. Generatorul de curent continuu


Se consider drept prim exemplu funcionarea n gol a unui generator de curent continuu.
Ecuaia de funcionare

die Tm (ue ie ) = dt Te
Parametrii de simulare

Tm = 4 Te = 0.2 ue = 1

n acest caz X(t) este un vector X(t) = (x0 (t),..., xn (t)) iar A este o matrice bidimensional n x n. Sistemul liniar poate fi rezolvat prin determinarea valorilor proprii i a vectorilor proprii pentru matricea A. Fie S setul tuturor vectorilor proprii din spaiul n-dimensional. Transformarea Y(t)=SX(t) duce la:
dY (t ) = SAS 1Y (t ) dt Y (0 ) = SX 0

Condiiile iniiale

ie = 0

Panoul frontal i diagrama bloc a instrumentului virtual care simuleaz pornirea n gol a unui generator de curent continuu.
Rezultatele simulrii

Matricea SAS 1 este o matrice diagonal a crei soluie este evident. Soluia X(t) poate fi determinat prin transformarea invers:
X (t ) = S 1Y (t )

Rezultatele simulrii

Figura 13.9. Simularea generatorului de c.c. panoul frontal

Figura 13.11. Simularea mainii de c.c. panoul frontal

Figura 13.10. Simularea generatorului de c.c. diagrama bloc

Figura 13.12. Simularea mainii de c.c. diagrama bloc

13.3.2. Maina de curent continuu cu excitaie separat


Ecuaiile de funcionare

d 1 ia = (u a ia ie ) dt Ta
d 1 ie = (ue ie ) dt Te
d 1 (ia ie M r ) = dt Tm
Parametrii de simulare

13.3.3. Maina de inducie


Ecuaiile de funcionare

U Y Xr d 1 Xs = ' Xs + 1 s + + s dt S ps 1 + r S ps Ts

X Y d 1 Ys = ' Ys 1 s + r dt S ps 1 + r Ts

ua = 1 ue = 1 Mr = 0 Ta = Te = 0.1 Tm = 0.3
Condiiile iniiale

Xs Y d 1 Xr = ' Xr + 2 r + dt S pr 1 + s Tr
Y X d 1 Yr = ' Yr 2 r + s dt S pr 1+ s Tr

ia = ie = = 0

d 1 = [2(1 + s )(Ys X r X sYr ) M r ] dt Tm

2 = 1
Parametrii de simulare

Tr ' = Ts ' = Tm = 0.1 S ps = S pr = 0.1 s = r = 0.014 Us =1 Mr = 0 1 = 2f = 314


Condiiile iniiale

(f

= 50 )

Figura 13.15. Simularea mainii de inducie diagrama bloc a ecuaiei 1

X s = Ys = X r = Yr = = 0
Rezultatele simulrii

13.3.4. Maina sincron cu magnei permaneni


Ecuaiile de funcionare

Figura 13.13. Simularea mainii de inducie panoul frontal

Lq d 1 R id = vd id + pr iq Ld Ld dt Ld L pr 1 d R iq = vq iq + d pr id dt Lq Lq Lq Lq
d 1 r = (Te Fr M r ) dt J
Te =
Parametrii de simulare

3 p iq + Ld Lq id iq 2

Figura 13.14. Simularea mainii de inducie diagrama bloc

R = 2.875 Ld = Lq = 0.0085 H = 0.175 Wb J = 0.008 kg m 2 F = 0 N ms p=4 vd = vq = 10 V Mr =1 N m


Condiiile iniiale

id = iq = = 0
Rezultatele simulrii

n continuare se descrie un exemplu de rezolvare a unei ecuaii difereniale de ordinul doi. Forma general a unei ecuaii difereniale de ordinul doi este urmtoarea:
a
Figura 13.16. Simularea mainii sincrone cu magnei permaneni panoul frontal

d2y dt
2

+b

dy (0 ) dy 0 dy . = + cy = g (t ) cu condiiile iniiale y (0 ) = 0 i dt dt dt

Ecuaia prezentat este una neomogen, deoarece membrul din dreapta nu este egal cu zero. Aplicaiile practice ale acestor tipuri de ecuaii sunt numeroase. Ne rezumm la a aminti ecuaia circuitului RLC serie:
L d 2Q dt
2

+R

dQ Q dE (t ) + = dt C dt

Figura 13.17. Simularea mainii sincrone cu magnei permaneni diagrama bloc

unde R, L, C reprezint rezistena, inductivitatea respectiv capacitatea circuitului, Q este sarcina electric din circuit iar E(t) este tensiunea aplicat circuitului. Pentru a rezolva un astfel de tip de ecuaie diferenial, este necesar n primul rnd s fie transformat ntr-o ecuaie diferenial de ordinul nti. Aceasta se reali-zeaz printr-o nlocuire de variabile: x1 = y i x2 = dy/dt. Cu acestea, forma general a ecuaiei devine:
a dx2 + bx2 + cx1 = g (t ) dt

dx2 g (t ) cx1 bx2 = dt a

n acest mod s-a transformat o ecuaie diferenial de ordinul doi n urmtorul sistem de dou ecuaii difereniale de ordinul nti:
dx1 = x2 dt

Figura 13.18. Simularea mainii sincrone cu magnei permaneni diagrama bloc a ecuaiei 1

dx2 g (t ) cx1 bx2 = dt a

13.4. Rezolvarea ecuaiilor difereniale de ordinul doi

Figura 13.19. Rezolvarea ecuaiei difereniale neomogene de ordinul doi panoul frontal

Acest sistem poate fi rezolvat utiliznd oricare din metodele disponibile n biblioteca de IV-uri referitoare la rezolvarea ecuaiilor difereniale. n continuare se prezint rezultatele rezolvrii acestui sistem de dou ecuaii difereniale cu metoda Runge-Kutta. Este de semnalat faptul c funcia a fost introdus n cazul general, iar valorile coeficienilor au fost atribuite prin intermediul blocului Substitute Variables.

Figura 13.20. Rezolvarea ecuaiei difereniale neomogene de ordinul doi diagrama bloc

Capitolul 14

APLICAII N DOMENIUL ELECTRONICII NUMERICE


Electronica numeric este unul dintre cursurile fundamentale n domeniul ingineriei electrice. Comenzile i indicatoarele numerice, mpreun cu marea varietate a structurilor de programare i funciilor disponibile, fac din LabVIEW o excelent unealt de simulare i vizualizare a conceptelor electronicii numerice. n continuare sunt prezentate patru dintre cele mai ntlnite aplicaii din acest domeniu, i anume: adunarea binar, convertorul numeric-analogic, convertorul analog-numeric i celula de afiare cu apte segmente. Evident, fiecare dintre aceste aplicaii pot fi extinse.

Transport 1 1 1 1

A1 0 0 1 1

A2 0 1 0 1

Suma 1 0 0 1

Transport 0 1 1 1

Tabelul 3.1 prezint tabela de adevr pentru adunarea pe 1 bit, care conine bit de transport (carry) la intrare i la ieire. Diagrama bloc pentru un astfel de instrument este prezentat n figura 14.2.

Figura 14.2. Adunarea binar simpl cu bit de transport la intrare (A)

14.1. Adunarea binar


Adunarea binar simpl pe 1 bit a dou numere binare A1 i A2, fr bit de transport la intrare se poate realiza folosind operaii logice, n felul urmtor: Rezultat = A1 XOR A2 Transport (la ieire) = A1 AND A2 Diagrama bloc pentru un instrument virtual care implementeaz adunarea binar simpl este prezentat n figura 14.1
Figura 14.1. Adunarea binar simpl (AS)

Acest instrument poate fi folosit ca i o subrutin n realizarea aplicaiilor care efectueaz adunri binare pe mai muli bii. Un exemplu de adunare binar pe 4 bii este artat n figurile 14.3 (panoul frontal) i 14.4 (diagrama bloc).

Figura 14.3. Adunarea binar pe 4 bii panoul frontal

Pentru a uura realizarea unui instrument care s efectueze o adunare binar pe mai muli bii, este necesar realizarea n primul rnd a unui instrument care s efectueze o adunare binar simpl, cu bit de transport la intrare.
Tabelul 14.1
Transport 0 0 0 0 A1 0 0 1 1 A2 0 1 0 1 Suma 0 1 1 0 Transport 0 0 0 1

Figura 14.4. Adunarea binar pe 4 bii diagrama bloc

n exemplul prezentat s-a utilizat ca i subIV, instrumentul cu diagrama bloc din figura 14.2.

14.2. Convertorul numeric-analogic


Convertorul numeric-analogic (Digital to Analog Converter DAC) este o component electronic utilizat pentru conversia din semnal numeric n tensiune (mrime analogic). Forma general a mrimii de ieire dintr-un DAC se poate exprima prin relaia:
DAC = wi bi
i =0

n figura 14.7 este redat diagrama bloc a unui instrument virtual care genereaz, n ordine cresctoare, numere binare pe 8 bii, ntre 0 i 255. n figura 14.8 se prezint diagrama bloc a unui instrument virtual care genereaz un semnal ramp. Instrumentul se compune dintr-un generator de numere binare i un convertor numeric-analogic.

unde wi este un factor de ponderare iar bi este un bit (0 sau 1). n cazul unui model binar, wi = 2 i . Expresia complet pentru un convertor numericanalogic pe 8 bii poate fi exprimat n felul urmtor:
DAC = 128b7 + 64b6 + 32b5 + 16b4 + 8b3 + 4b2 + 2b1 + 1b0

Figura 14.7. Generator de numere binare pe 8 bii n ordine cresctoare

Instrumentul virtual care simuleaz funcionarea unui convertor numericanalogic pe 8 bii este redat n figurile 14.5 (panoul frontal) i 14.6 (diagrama bloc).

Figura 14.5. Convertor numericanalogic pe 8 bii panoul frontal

Figura 14.8. Generator de semnal ramp liniar diagrama bloc

Se studiaz comparativ comportamentul unui convertor numeric-analogic pe 4 bii i pe 8 bii. Rezultatele sunt redate n figurile 14.9, 14.10

Figura 14.6. Convertor numeric-analogic pe 8 bii diagrama bloc

Aplicaie: Generarea unui semnal ramp.

Figura 14.11. Utilizarea unui ADC n metoda aproximaiilor succesive panoul frontal

Figura 14.9. Semnal ramp realizat Figura 14.10. Semnal ramp realizat cu DAC pe 8 bii cu DAC pe 4 bii

14.3. Convertorul analog-numeric


Scopul convertorului analog-numeric este acela de a produce un numr binar, proporional cu un semnal analogic de intrare. Ca i aplicaie se prezint utilizarea unui convertor analog-numeric pentru generarea unui semnal numeric prin metoda aproximaiilor succesive. (figurile 14.11 panoul frontal i 14.12 diagrama bloc)

14.4. Celula de afiare numeric cu apte segmente


Afioarele cu 7 segmente sunt foarte rspndite n domeniul electronicii. Acestea pot reprezenta cifrele ntre 0 i 9 precum i unele litere, ca de exemplu: A, b, c, d, E, F, H, I, J, L, P, S, U (care faciliteaz vizualizarea numerelor hexazecimale). De asemenea pe un ecran cu mai multe astfel de celule se pot afia i scurte mesaje (error ...).

Figura 14.12. Utilizarea unui ADC n metoda aproximaiilor succesive diagrama bloc

Structura unei astfel de celule este prezentat n figura 14.13.

Figura 14.13. Afiorul cu 7 segmente

Fiecare segment este controlat de un singur bit. Exemplul prezentat n figurile 14.14 (panoul frontal) i 14.15 (diagrama bloc) prezint simularea unei astfel de celule de afiare. Pornind de la acest exemplu se pot construi matrici de astfel de celule pentru afiare numeric.

Figura 14.14. Simularea afiorului numeric cu 7 segmente panoul frontal

Figura 14.15. Simularea afiorului numeric cu 7 segmente diagrama bloc

14.5. Aplicaie propus


S se realizeze un calculator pentru cele patru operaii (adunare, scdere, nmulire i mprire), cu afiaj numeric compus din 8 celule cu 7 segmente.

[20]. * * * LabVIEW User Manual, National Instruments, 2000.

BIBLIOGRAFIE
[1]. Bitter, R., Mohiuddin, T., Nawrocki, M., LabVIEW Advanced

[21]. * * * The Measurement and Automation. Catalog 2002. [22]. Pagina

de internet a http://www.ni.com.

companiei

National

Instruments:

[2]. [3]. [4]. [5]. [6]. [7]. [8]. [9]. [10]. [11].

Programming Techniques, CRC Press Boca Raton New York London Tokyo, 2001. Cottet, F., Ciobanu, O. Bazele programrii n LabVIEW, Editura Matrix Rom, Bucureti, 1998. Engels R., Rongen, H., LabVIEW Course Manual, Forschungszentrum Jlich GmbH Zentrallabor fr Elektronik, 2002. Leonhard, W., Control of Electrical Drives, Springer-Verlag, BerlinHeidelberg-NewYork-Tokyo, 1985. Maier, V., Maier, C.D., LabVIEW n Calitatea Energiei Electrice. Editura Albastr Cluj-Napoca, 2002. Paton, B., Fundamentals of Digital Electronics, Dalhousie University, 1998
Wells, L.K., Travis,J., LabVIEW for Everyone, Prentice Hall Inc, 1996.

* * * Colecia Revistei Automation View, National Instruments.

* * * Colecia Revistei de Instrumentatie Virtuala, Ed. Mediamira, Cluj-Napoca. * * * Colecia Revistei Instrumentation Newsletter, National Instruments. * * * Colecia Revistei Orizonturi n Instrumentaie, Advanced Computer Technology Bucureti cu sprijinul National Instruments. [12]. * * * LabVIEW Advanced Course Manual, version 2.0, National Instruments, 1996. [13]. * * * LabVIEW Analysis VI Reference Manual, National Instruments, 1994. [14]. * * * LabVIEW Basics I Course Manual, version 6.0, National

Instruments, 2000. [15]. * * * LabVIEW Basics II Course Manual, version 6.0, National Instruments, 2000. [16]. * * * LabVIEW Data Acquisition Course Manual, version 2.0, National Instruments, 1996.
[17]. * * * LabVIEW Data Acquisition Basics Manual, National Instruments, 2000. [18]. * * * LabVIEW Function and VI Reference Manual, National Instruments, 1997. [19]. * * * LabVIEW Signal Processing Course Manual, version 1.0, National

Instruments, 1997.

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