Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


INSTRUMENTATIA VIRTUALA CU LAB VIEW

calculatoare



+ Font mai mare | - Font mai mic



INTRODUCERE IN INSTRUMENTATIA VIRTUALA

Introducere

Prin instrumentatia virtuala se intelege facilitatea / modalitatea oferita de un computer dotat cu echipamente periferice de intrare / iesire specializate, pentru a modela si simula caracteristicile si functionarea unui instrument / sistem de masurare, de testare sau de inregistrarea datelor.



La ora actuala exista, la nivel mondial, o concurenta acerba pentru lansarea pe scara larga a unei game variate de produse noi (din domeniul masurarilor: osciloscoape, multimetre digitale, voltmetre s.a.m.d.), cu calitati superioare celor de pe piata sau cu solutii noi pentru monitorizarea unor procese automatizate. Un utilizator isi poate construi un produs virtual destinat unei anumite aplicatii cu caracteristicile dorite. Acest produs il vom denumi in continuare instrument virtual ( Virtual Instruments - VI).

Instrumentatia virtuala a devenit "tinta" mai multor medii de lucru specializate. Unul dintre cele mai raspandite si care s-a impus pe plan mondial este LabVIEW (Laboratory Virtual Instrument Engineering Workbench). Aceste este un mediu de programare bazat pe limbajul de programare grafica G. Firma National Instruments (NI) a introdus in anul 1986 conceptul de instrumentatie virtuala si a lansat pe piata prima versiune a mediului LabView. In [1.1] instrumentul virtual se defineste ca: program in LabView care modeleaza forma si functia unui instrument fizic.

Pentru atingerea scopului dorit, realizarea unui instrument virtual, este necesara o dotare minima - un sistem de calcul si un mediu de programare:

folosind mediul de programare se realizeaza, pentru instrumentul dorit, panoul frontal (interfata instrumentului) si functionalitatea sa;

calculatorul devine "gazda" noului instrument creat de utilizator oferindu-i totodata facilitatile clasice: capacitate ridicata de prelucrare, analiza, stocare a informatiilor, conectare la retea, imprimare a datelor etc.

Mediul de programare utilizat pentru "modelarea" instrumentului virtual, fara corespondent real, permite utilizatorului sa-si dezvolte in continuare proceduri proprii de prelucrare a informatiei pe care sa le poata utiliza in "construirea" altor VI.

Limbajele de programare de circulatie extinsa - FORTRAN, PASCAL, C, BASIC s.a - se bazeaza in constructia unui program prin scrierea unor instructiuni utilizand textul. Realizarea unui program in aceste medii poate sa devina dificila pentru un incepator in special in perioada de depanare. Grafica este extrem de intuitiva, potentialul graficii fiind sustinut prin principalele metode de instruire existente si care si-au dovedit rolul esential.

Limbajul grafic G - "inima" mediului LabVIEW - se bazeaza pe existenta unor biblioteci de functii definite care prin asamblare grafica "construiesc" in mod intuitiv un program.

Instrumentele virtuale au o structura ierarhica si modulara. Un instrument virtual utilizat pentru constructia unui alt instrument virtual poarta denumirea de subinstrument virtual (subVI).

Instrumentatie virtuala cu LabView

Introducere

In modul clasic de lucru pe un sistem de calcul cu mouse, lansarea mediului de lucru se realizeaza fie prin alegerea pictogramei corespunzatoare mediului de lucru (fig.4.1) fie prin alegerea succesiva a optiunilor: Start / Programs / National Instruments LabView / LabView ceea ce are ca efect dechiderea meniului de lucru.

Fig. Pictograma LabView

In figura 4.2 se prezinta meniul de lucru pentru versiunea LabVIEW 5.1 care poate fi regasit cu schimbari nesemnificative si pentru versiunea LabView 6.0.

Fig. Meniul principal pentru LabView 5.1

Semnificatiile din meniu sunt urmatoarele:

optiunea - New VI - permite crearea unui nou VI iar optiunea - Open VI - pentru deschiderea unui VI existent;

optiunea - Solution Wizards - lanseaza un utilitar care furnizeaza recomandari in mod interactiv pentru realizarea unei aplicatii de achizitii de date sau instrumente.

optiunea "Cautare exemple" - Search Examples - permite consultarea unui set de exemple, distribuite de firma National Instruments impreuna cu mediul de lucru. Modul de consultare este cel clasic de lucru in sistemul Windows.

optiunea "Indrumator LabVIEW" - LabVIEW Tutorial - lanseaza un program demonstrativ de instruire despre LabVIEW.

pentru parasirea mediului de lucru se apeleaza la optiunea "Iesire" - Exit .

In figura 4.3 se prezinta meniul principal pentru versiunea LabView 8.2 care este asemanator cu cel pentru versiunea LabView 7.0. Construirea unui instrument virtual se va lansa in acest caz prin selectarea optiunii New / Blank VI.

Fig. Meniul principal pentru LabView 8.2

Introducere in LabView

Structura unui instrument virtual

Un instrument virtual (VI) are trei componente:

panoul frontal - corespunde la interfata grafica cu utilizatorul sau ceea ce va vedea utilizatorul pe ecranul monitorului. Daca dorim sa facem o comparatie a instrumentului virtual cu un instrument fizic, panoul frontal ar corespunde partii frontale a instrumentului fizic pe care exista butoane, chei de comanda, afisaj, display etc. Pentru exemplificare se prezinta in figura 4.4 se prezinta panoul frontal al unui instrument virtual pentru vizualizarea legilor de miscare a unui element mobil: acceleratie, viteza si spatiu in functie de timp (fig.4.5). Pentru o lege de miscare data a acceleratiei se poate scrie simplu:

(

(

Fig. Element in miscare de rotatie

Fig. Panou frontal

Panoul frontal este o combinatie de elemente de control si indicatoare. Elementele de control simuleaza sursele de informatii pentru instrumentul virtual. Indicatoarele simuleaza elementele de iesire si vizualizare pentru informatiile achizitionate.

diagrama bloc - corespunde codului programului si defineste functionalitatea IV - lui pe baza operatorilor clasici, functiilor s.a.m.d. In figura 4.6 se prezinta diagrama bloc pentru un element motor in miscarea de rotatie, construita pe baza bibliotecii mediului de lucru. Realizarea diagramei bloc se obtine prin utilizarea limbajului grafic. Componentele se leaga intre ele prin "fire = conductoare" definind fluxul datelor din diagama. Daca comparam diagrama bloc cu instrumentul fizic, atunci, continutul sau coincide cu componentele fizice (rezistoare, fire de legatura, circuite logice etc.) din carcasa instrumentului.

Fig. Diagrama bloc

pictograma si conectorul corespund "semnaturii" programului. Pictograma (icon-ul) este identificatorul graphic al VI. Terminalele de intrare si iesire corespund parametrilor de intrare / iesire.

Fig. Pictograma (icon-ul) pentru VI-ul corespunzator calculului valorii medii

Constructia unui instrument virtual

Introducere

La selectarea optiunii New VI din meniul principal (versiunea 5, 6) sau pentru versiunea 8.2 se deschid doua ferestre de lucru suprapuse corespunzatoare panoului frontal si respectiv diagramei (fig.4.8).    

Bara orizontala cu meniuri contine optiuni implementate in aplicatiile Windows (File, Edit,.) si unele specifice mediului LabView.

Pentru un lucru usor cele doua pagini se pot aranja relativ una fata de alta:

Selectand din bara meniului orizontal Windows / Tile Left and Right cele doua pagini se pozitioneaza vizibil pe aceeasi orizontala.

Selectand din bara meniului orizontal Windows / Tile Up and Down cele doua pagini se pozitioneaza vizibil pe aceeasi verticala;

Selectand din bara meniului orizonal Windows / Full Size se obtine maximizarea paginii de lucru respective. Trecerea in cea de a doua pagina se realizeaza selectand din nou de ex.: Windows / Show Block Diagram sau Windows / Show Front Panel.

Fig. Ferestrele de lucru corespunzatoare panoului frontal si diagramei

Prin selectarea unei optiuni din bara orizontala superioara, prin butonul stang al mouse-lui, se deschide un submeniu derulant cu o serie de optiuni dispuse pe vericala.

Fig. Meniul derulant pentru optiunea File

Modul este specific programelor sub Windows iar optiunile sunt in general clasice. Pentru meniul derulant corespunzator optiunii File (fig.1.9) semnificatiile sunt:

optiunea "Fisier" - File - permite utilizatorului realizarea unor operatii de gestionare a fisierelor: lansarea operatiei de creare a unui nou VI (New), deschiderea unui VI existent (Open), inchiderea ferestrei de lucru curente (Close), salvarea modificarilor realizate asupra VI (Save), salvarea VI cu optiune pentru numele fisierului, director etc.(Save As), lansarea in lucru a unui nou proiect (New Project), deschiderea unui proiect existent (Open Project) optiuni de tiparire (Print) s.a.m.d.

Optiunea de asistenta - Help este de asemenea specifica sistemelor de operare si asigura facilitati de obtinere a unor informatii despre elementele de lucru, program de instruire, versiunea mediului de lucru etc.

Optiunile din a doua bara orizontala (pagina panou frontal) sunt specifice LabView (fig.4.10):

a - Run - lanseaza in executie programul de lucru. Programul de lucru este modulul principal al aplicatiei si apeleaza alte VI;

b - Run Continuously - programul este executat continuu;

c - Abort Execution - realizeaza oprirea rularii;

d - Pause - realizeaza o oprire temporara a rularii programului;

e - Font - optiuni pentru selectarea fontului de text dorit;

f - Sunt patru optiuni in ordine - Align Objects, Distribute Objects, Resize Objects, Reorder - care permit alinierea, distribuirea obiectelor selectate in panoul frontal, redimensionarea sau reordonarea acestora.

Fig. Optiunile din bara a doua orizontala

Semnificatii asemanatoare sunt alocate si in bara orizontala din pagina diagramei VI (fig.4.11). Semnificatiile a - d sunt identice cu cele anterioare iar urmatoarele se refera la:

e - Highlight Execution - prin selectarea optiunii executiunea progamului este incetinita si se vizualizeaza intregul transfer de date;

f - Retain Wire Values - retinerea valorilor pentru fluxul de date din firul selectat.

Fig. Optiunile din pagina diagramei

Am prezentat in cele anteriore cadrul general in care un utilizator urmeaza sa construiasca un intrument virtual. In acest scop, utilizatorul va apela la trei casete:

Caseta cu instrumente - Tools Palette care devine vizibila prin selectarea optiunii View / Tools Palette;

Caseta cu controale - Controls Palette care devine vizibila prin selectarea in pagina panoului frontal a optiunii View / Controls Palette;

Caseta cu functii - Functions Palette care devine vizibila prin selectarea in pagina diagramei a optiunii View / Functions Palette.

In cazul versiunilor anterioare (5, 6) casetele de lucru se activeaza din optiunea Windows / Controls Palette sau Windows / Functions Palette.

Caseta cu instrumente (Tools Palette)

Caseta cu unelte generale (Tools Palette) cuprinde facilitatile folosite de utilizator pentru crearea, editarea sau trasarea executiei instrumentelor virtuale. In figura 4.12 se prezinta imaginea casetei cu instrumente de lucru. Imaginea acesteia si facilitatile oferite sunt aceleasi pentru versiunile LabView mentionate.

Fig. Caseta cu instrumente

Pentru a fi activa una dintre facilitatile oferite de caseta este necesar sa fie selectata cu ajutorul mouse-lui. In figura 4.12 este activa facilitatea a2. Semnificatia fiecareia dintre aceste facilitati este urmatoarea:

a1 - instrumentul de operare - permite manipularea controalelor si indicatoarelor pe panoul frontal;

a2 - instrumentul de editare - permite selectarea, deplasarea sau redimensionarea obiectelor;

a3 - instrumentul de etichetare - permite introducerea textului de la tastatura;

b1 - instrumentul interconectare - se foloseste in diagrama bloc, pentru a realiza legaturile intre noduri (elementele de executie) in conformitate cu schema logica de lucru. Firele definesc fluxul datelor;

b2 - instrument pentru afisarea meniului aparent - permite deschiderea casetei meniu a obiectului vizat din panoul frontal prin butonul stang al mouse-lui;

b3 - instrumentul de defilare - permite defilarea continutului ecranului, fara a se utiliza barele de defilare ale ferestrei de lucru;

c1 - instrumentul de depanare : permite intreruperea executiei IV. Se foloseste la depanarea programului;

c2 - instrument sonda (proba) : permite vizualizarea valorii transmise pe un fir de legatura in faza de executie a programului. Se utilizeaza in general in faza de depanare a programului (fig.4.13);

Fig. Modul de utilizare al sondei

c3 - instrumentul pentru culoare - permite preluarea culorii obiectului asupra caruia se executa "clic" cu butonul stanga al mouse-lui;

d - instrumentul de colorare: permite stabilirea culorilor pentru prim planul si fundalul obiectelor.

Numele fiecareia dintre facilitati devine vizibil pentru un scurt timp la pozitionarea mouse-lui deasupra iconu-lui corespunzator instrumentului.

Caseta cu controale (Controls Palette)

LabView dispune de controale si indicatoare pentru majoritatea categoriilor de date: numerice, sir de caractere, boolean, tabel, tablou, grafic etc. Pentru un anumit tip de date sunt disponibile mai multe variante de controale si indicatoare. Utilizatorul poate sa aleaga din variantele disponibile pe cea mai sugestiva pentru instrumentul vizat. Afisarea casetei cu controale - daca nu este vizibila - se poate realiza fie prin selectarea din meniul principal, fie prin pozitionarea cursorului mouse-lui in interiorul panoului frontal si click cu butonul drept.

Semnificatia grupului de elemente din caseta este indicata prin denumirea fiecarui grup in mod vizibil sub icon-ul caracteristic (fig.4.14). Pozitionarea mouse-lui deasupra unuia din grupul de elemente deschide o subcaseta cu toate elementele disponibile in grupul respectiv (fig.4.15).

Plasarea elementului selectat pentru constructia VI in panoul frontal se realizeaza prin selectarea din caseta si "tragerea" acestuia cu mouse-ul in zona de lucru si confirmarea pozitiei in panoul frontal prin mouse. Plasarea elementului pe suprafata panoului frontal este insotita de "aparitia" in diagrama a unui corespondent colorat cu o eticheta avand acelasi nume cu cel plasat in panoul frontal.

Un element oarecare al acestei casete poate indeplini in general doua roluri: rol de control adica de prescriere a unei valori sau un rol de indicator adica de vizualizare a unei informatii. Recunoasterea uneia sau a alteia dintre stari este posibila prin urmarirea liniei de contur exterior pentru icon-ul elementului reprezentat in diagrama. Elementele de tip control au linia exterioara a conturului groasa iar indicatorul are linia de contur subtire.

Fig. Caseta de controale (a) si elementele componente din grupul Graph (b)

Fiecarui control / indicator ii este atasat un meniu contextual care permite afisarea unor elemente suplimentare, selectarea unui anumit comportament, domeniul valorilor posibile etc.:

Replace - permite inlocuirea componentei cu alta daca aceasta este mai convenabila in constructia VI-lui;

Representation - permite selectarea formatului numeric: intreg pe x biti cu semn (Ix), intreg pe x biti fara semn (Ux), virgula mobila, precizie simpla (SGL), virgula mobila, precizie dubla (DBL), precizie extinsa (EXT), ;

Data range - permite selectarea valorii initiale, incrementarea, valoarea minima si maxima, formatul de notare a valorilor numerice, textul etichetei;

Format & Precision - permite selectarea modului de notare a valorilor numerice;

Scale - permite selectarea formatului, a preciziei, grafica scalei, tipului scalei (liniara, logaritmica).

Din acest meniu este posibila trecerea elementului din modul de lucru control in modul de lucru indicator si invers. Pentru aceasta se selecteaza optiunea Change to(fig.4.15).

Fig. Controlul si meniul contextual corespunzator

Un clic cu butonul drept, pe scala atasata graficii obiectului, deschide meniul contextual de aceeasi configuratie pentru toate controalele si indicatoarele de tip numeric (fig.4.16). In exemplul din figura 4.16 pentru optiunea Style se pot modifica formele de prezentare ale scalei.

Fig. Selectarea graficii pentru scala

La alegerea optiunii pentru "format & precizie" - Format & Precision se poate stabili formatul de lucru pentru scala prezentata si numarul de zecimale in prezentare.

Fig. Formatul de lucru

Se prezinta in figura 4.18 formatul liniar scalei pentru notatia cu virgula mobila (VAR 1), notatia stiintifica (VAR 2), notatia in inginerie (VAR 3), in format SI (VAR 4),cu trei zecimale si valoarea maxima diferita (VAR 5) si respectiv formatul logaritmic (VAR 6).

Fig. Formatul si forme de notare

In figura 4.19 se prezinta modul de stabilire a domeniului valorilor posibile pentru un control. Exista posibilitatea alegerii unui increment implicit (se selecteaza Use Defaults) sau a unuia impus de utilizator.

Fig. Selectarea valorii de incrementare pentru un control

Formatul de reprezentare a datelor numerice confera precizia de operare. In figura 4.20 se prezinta aceste influente in modul de adunare a doua numere A si B. Rezultatul adunarii este redat de un indicator cu doua forme de reprezentare: intreg fara semn (32 bit) (I32) si respectiv real, dubla precizie (64 bit) (DBL).

Fig. Influenta formatului de prezentare numerica in precizia de operare

Caseta cu functii (Functions Palette)

Dupa realizarea panoului frontal al IV , trebuie implementata functionalitatea programului. In acest scop se construieste diagrama bloc care reprezinta codul sursa al instrumentului adica arata CUM se rezolva problema. In acest scop se utilizeaza limbajul grafic G. Daca am face o comparatie cu constructia unui instrument fizic atunci constructia diagramei ar fi echivalenta cu conectarea elementelor componente prin fire, conectori etc.

In diagrama se afla corespondentele controalelor si indicatoarelor introduse in panoul frontal. In continuare utilizatorul selecteaza si utilizeaza componente grafice de executie definind astfel functionalitatea VI.

In figura 4.21a se prezinta caseta cu functii in versiunea LabView 8.2. Aceasta este structurata pe grupuri de functii: programare (Programming), instrumente I / O pentru masuratori (Measurement I / O), instrumentatie I / O (Instrument I /O), prelucrare imagine si miscare (Vision and Motion), matematica (Mathematics), procesare semnal (Signal Processing),., biblioteca utilizator (User Libraries), selectarea unui VI dintr-o biblioteca (Select a VI). Fiecare dintre aceste grupuri de functii se deschid intr-o subcaseta de functii care au atasat un icon sugestiv aplicatiei si numele acestuia. Noile functii devenite vizibile pot permite deschiderea unor alte subcasete cu functii particularizate. In fig.4.21b se prezinta, in sensul celor prezentate anterior, caseta pentru programare si subcaseta cu functii pentru comparare.

Fig. Caseta cu functii cu subpaleta functiilor de programare (a) si sub-subpaleta functiilor booleane (b)

Editarea panoului frontal pentru un VI

In editarea unui VI putem considera esentiale doua aspecte:

un aspect functional prin care se urmareste atingerea parametrilor doriti pentru instrumentul virtual;

un aspect de design prin care se urmareste crearea unui produs cu aspecte personalizate evidentiate prin modul de dispunere a controalelor in panoul frontal, a formelor si culorilor etc.

In figura 4.22 se prezinta panoul frontal al unui instrument virtual in care au fost selectate in scop functional un display (Controls/Graph/Waveform Graph), controale pentru start / stop (Controls/Boolean/Vert Rocker, ../Boolean/Vertical Toogle Switch) instrumente pentru semnalizare (../Boolean / Round Led) si redarea numerica a informatiei (Controls/Numeric/Numeric Indicator, ..Numeric / Gauge).

Fig. Panou frontal al unui VI

Pozitionarea si redimensionarea fiecarui control din panoul frontal s-a realizat apeland la facilitatea Tools Palette / Position/Size/Select. Pentru redimensionarea unui control se selecteaza obiectul cu ajutorul mouse-lui iar apoi se modifica marimea acestuia la valoarea dorita (pe verticala, pe orizontala sau simultan) prin tragere de punctele aferente ale conturului.

Continutul etichetei se modifica apeland la facilitatea Tools Palette/ Edit Text pentru a trece in regimul de editare a textului si apeland la Application Font / din bara de meniu principal pentru: modificarea stilului /Style/..Bold, pozitionarea textului ../Style/..Center, marimea fontului /Style/Size/.

Particularizarea instrumentului de vizualizare a inregistrarii grafice se realizeaza apeland la meniul contextual al instrumentului (clic dreapta in conturul instrumentului) (fig.4.23). Selectand facilitatea Properties se poate modifica stilul scalei, stilul pentru caroiaj (grid), culoarea caroiajului principal si secundar etc. Modificarea valorii maxime a scalei se poate realiza prin trecerea in regim de text si introducerea valorii dorite din tastatura. Daca se doreste auto-adaptarea instrumentului la valorile inregistrate se poate selecta pentru scala dorita (X, Y sau ambele) optiunea Auto Scale. In cazul inregistrarii grafice a mai multor informatii (mai multe caracteristici) se selecteaza modul reprezentare dorit (prin puncte, linii, culoare etc.) din Properties / Plot.

Daca pe parcursul editarii panoului frontal se doreste stergerea unuia sau a mai multor controale, acestea se selecteaza individual sau in grup (prin fereastra) cu ajutorul mouse-lui si se apasa tasta <Delete>. Pentru pastrarea pozitiei relative a controalelor in panoul frontal acestea se pot include intr-un grup sau mai multe printr-o succesiune de operatii: selectarea controalelor (fereastra)/ Reorder / Group.

Fig. Indicator grafic si meniul contextual

Pentru a fi cat mai sugestiv, panoul frontal al instrumentului virtual se poate personaliza prin includerea pe langa controalele specifice aplicatiei si a unor desene ale instalatiei vizate, scheme, etc. In acest scop se poate apela la facilitatea oferita de mediul de lucru Controls / Decorations sau se poate importa desenul respectiv dupa ce a fost realizat intr-un alt mediu. In figura 4.24 se prezinta, in sensul celor precizate anterior, particularizarea panoului frontal pentru un divizor de tensiune.

Particularizarea consta in includerea schemei electrice a divizorului si pozitionarea sugestiva a controalelor in panoul frontal. S-a utilizat pentru editarea schemei electrice facilitatea din mediul LabView. Reprezentarea grafica se poate realiza si in AutoCAD. Pentru un import de calitate se realizeaza in AutoCAD: maximizarea imaginii in fereastra de vizualizare (View / Zoom / Extents), o reducere a scalei de vizualizare (..Zoom 0.95X) si salvare *.wmf. Desenul respectiv se importa in panoul frontal Edit / Import Picture to Clipboard.

Fig. 1. Panoul frontal al instrumentului virtual

In figura 4.25 se prezinta un control si meniul sau contextual. Spre deosebire de cazul indicatorului grafic, in acest caz este necesara si alegerea corecta a modului de reprezentare a informatiei: intreg cu semn (pe 8 bit - I8, pe 16 bit - I16, pe 32 bit -I32), intreg fara semn (pe 8 bit - U8, pe 16 bit - U16, pe 32 bit -U32),

Fig. Control si meniul contextual

Editarea diagramei bloc

Componentele casetei cu functii se constituie in nodurile diagramei bloc fiind elementele principale ale diagramei.

Cel de al doilea element pentru diagrama bloc sunt terminalele. Acestea reprezinta "porti" (tunele) prin care se realizeaza transferul datelor:

bidirectional intre panoul frontal si diagrama bloc;

unidirectional intre nodurile diagramei bloc.

In constructia diagamei bloc se recomanda respectarea urmatorului principiu: pozitionarea nodurilor sa fi facuta astfel incat circulatia informatiei sa se faca de la stanga la dreapta si de sus in jos. In acest mod este simpla si urmarirea legaturilor.

Terminalele au o reprezentare grafica sugestiva si sunt terminale sursa - pentru datele de intrare - si respectiv terminale destinatie (iesire). In figura 4.26 se prezinta icon-ul pentru functia numerica de adunare in care sunt vizibile terminalele. Notarea terminalelor respecta principiul precizat anterior. Aceste terminale devin vizibile la pozitionarea mouse-lui deasupra sa.

Fig. Functie si terminale

Ultimul element firele definesc si reprezinta grafic fluxul datelor in diagrama bloc. Fluxul datelor este de la terminalele sursa spre terminalele destinatie. Prin culoarea si tipul liniei, firele codifica tipul datelor transmise (tabelul 4.1). Conectarea corecta a doua componente din diagrama bloc este sesizata prin existenta unui fir de legatura continuu de culoarea informatiei vehiculate. Daca legatura nu este corecta firul se prezinta sub forma unei linii intrerupte de culoare neagra.

Tabelul

Scalar

Matrice 1D

Matrice 2D

Culoare

Numeric

Portocaliu

(virgula mobila)

Albastru (intreg)

Boolean

Verde

Sir de caractere

Rosu

Constructia diagramei se realizeaza in conformitate cu schema logica pentru aplicatia data. Din acest motiv este necesara o cunoastere prealabila a aspectului functional / teoretic al instrumentului.

Pentru exemplificarea celor mentionate reconsideram exemplul divizorului de tensiune pentru care a fost prezentat panoul frontal in figura 4.14. Divizorul de tensiune face parte din cadrul circuitelor de conditionarea semnalului si permite reducerea tensiunii de iesire din circuit (fig.4.27). In conformitate cu schema electrica, tensiunea de iesire se calculeaza ca fiind:

(

Fig. Schema electrica a divizorului de tensiune

In panoul frontal au fost introduse patru elemente: un control pentru tensiunea de intrare, doua controale pentru rezistente si un indicator pentru tensiunea de iesire. In diagrama bloc aceste elemente trebuie sa respecte succesiunea logica a operatiilor matematice din relatia (4.3). In acest scop s-au introdus in mod suplimentar in diagrama urmatoarele functii (Functions / Programming / Numeric):

Functia de adunare Add pentru insumarea valorilor rezistentelor;

Functia de impartire Divide pentru obtinerea valorii raportului ( tensiune / suma rezistente);

Functia de inmultire Multiply pentru inmultirea rezultatului anterior cu valoarea rezistentei R2.

Diagrama bloc rezultata este prezentata in figura 4.28.

Fig. Diagrama bloc pentru VI-ul divizorului de tensiune

Introducerea de controale si indicatoare suplimentare se poate realiza si din diagrama bloc prin apelarea meniului contextual al functiei in cauza. Astfel de cerinte pot sa apara pe parcursul editarii diagramei bloc iar controalele respective s-ar constitui in elemente suplimentare care dau o claritate superioara instrumentului virtual. In figura 4.29 este exemplificat modul de apelare al meniului contextual pentru o functie de comparare in scopul introducerii unui indicator pe parcursul editarii diagramei bloc.

Confirmarea posibilitatii de a lega cele doua obiecte consta din schimbarea promterului pentru mouse in semnul grafic din caseta de unelte (fig.4.30). Pentru a crea legatura intre cele doua terminale se apeleaza la butonul stang al mouse-lui si se deplaseaza de la un terminal la celalalt (fig.4.31)

Fig. Introducerea unui indicator prin apelarea meniului contextual

Fig. Mouse-ul si semnul activ aferent posibilitatii de conectare a obiectelor

Stergerea unui fir se realizeaza prin selectare si apasarea tastei <Delete>. Un segment a firului este un fragment orizontal sau vertical a acestuia. Punctul de intalnire dintre trei sau patru segmente de fir definesc o jonctiune. O ramificatie contine toate segmentele de fir de la o jonctiune la alta, de la un terminal la jonctiunea urmatoare, de la un terminal la altul daca nu este nici o jonctiune intre ele (fig.4.32).

Fig. Conectarea a doua obiecte din diagrama bloc

Fig. Segment, cot si nod in conectarea obiectelor

Un clic simplu (butonul stang al mouse-lui) selecteaza un segment al firului (fig.4.33a). Dublu-clic selecteaza o ramificatie (fig.4.33b) iar un triplu-clic selecteaza intregul fir (fig.4.33c).

Fig. Modalitati de stergere a firelor

Tehnici de depanare in functionarea instrumentului virtual

Dupa editarea panoului frontal si a diagramei bloc urmatorul pas pe care utilizatorul trebuie sa il faca este verificarea functionarii instrumentului virtual. Lansarea in lucru a programului se realizeaza prin selectarea tastei Run sau Run Continuosly din bara de meniu orizontala.

Daca din punct de vedere "tehnic" instrumentul virtual este corect construit, utilizatorul va constata ca acesta functioneaza iar acest lucru este semnalizat in a doua bara de meniu orizontala care va avea aspectul din figura 4.34.

Fig. Aspectul barei de meniu la functionarea instrumentului virtual

Daca din punct de vedere "tehnic" exista erori de editare (fire intrerupte, controale neconectate sau in plus, fara rol functional) acest lucru este semnalizat iar programul nu poate fi lansat in executie (fig.4.35).

Fig. Eroare de editare, lista de erori

Existenta erorii este semnalizata pe bara de meniu orizontala prin icon-ul hasurat al optiunii Run.Apasarea acestui buton (butonul stang al mouse-lui) deschide o caseta cu erorile din program. Detalii suplimentare privind cauzele posibile ale erorii sunt precizate in partea inferioara a listei de erori (Error list, Details). Un dublu click in zona erorii din lista deschisa, va localiza eroarea din diagrama bloc. Dupa inlaturarea cauzelor care au dus la eroarea de functionare, icon-ul optiunii Run isi recapata aspectul normal (sageata cu interior nehasurat).

Una din cauzele frecvente ale erorilor de functionare consta in existenta unor fragmente de fir neconectate in diagrama bloc datorita aspectului invizibil in primul moment pentru utilizator: sunt acoperite cu alte obiecte, sunt in alta parte a spatiului de lucru decat cel vizibil pentru utilizator etc. Eliminarea acestor fragmente ascunse este posibila prin selectarea optiunii (bara de meniu orizontala) Edit / Remove Broken Wires.

Pentru emiterea concluziei instrumentul virtual functioneaza correct este necesara o verificare a rezultatelor finale prin comparare cu valori estimate / calculate. O astfel de verificare poate elimina in mod rapid unele din cauzele functionarii incorecte a instrumentului.

O atentie deosebita trebuie acordata corelarii unitatilor de masura pe de o parte si a modului de transfer a informatiilor de forme diferite de exprimare (numerice, Boolean, sir de caractere etc.)

Se pot mentiona cateva facilitati de testare a progamului editat:

executia programului prin evidentiere (diagrama bloc / bara de meniu orizonala / Highlight Execution). In cadrul fiecarui ciclu de executie a programului este evidentiata valoarea de executie pe fiecare obiect din diagrama bloc (fig.4.36). In acest mod este posibila determinarea acelui punct din care programul nu functioneaza correct.

Fig. 1. Diagrama bloc la executia programului prin evidentiere

executia programului dupa selectarea optiunii Retain Wire Values permite vizualizarea valorii informatiei pe oricare dintre firele de legatura din diagrama prin simpla plasare a mouse-lui peste firul respective. Aparitia unei etichete in care este trecuta valoarea informatiei vehiculate este insotita si de aparitia temporara a iconu-lui cu instrumental corespunzator probei din caseta de instrumente.

pentru vizualizarea permanenta a unei valori pe un anumit canal (fir) se selecteaza din caseta cu instrumente optiunea instrumentului de proba Caseta cu instrumente(Tools Palette) / Probe Data. Actiunea are ca rezultat inlocuirea prompterului mouse-lui cu instrumental de proba dupa care acesta este plasat pe firul vizat. Actiunea se incheie prin aparitia in zona firului a unei eticehete care marcheaza numarul de ordine a probei (pentru a o putea identifica daca acestea sunt multiple), o caseta cu o zona de vizualizare a valorii (fig.4.37). Daca firul vizat este conectat pe terminalul de iesire a unui control, caseta evidentiaza si denumirea acestuia. Daca firul vizat este conectat pe terminalul de iesire a unei functii, se evidentiaza doar valoarea informatiei.

vizualizarea executiei programului in mod succesiv pe obiecte este posibila prin selectarea din bara de meniu orizontala a diagramei bloc a optiunii Start Single Stepping. La prima selectare este marcat primul obiect executat in program. La apasarea urmatoare este evidentiat urmatorul obiect s.a.m.d. In acest mod utilizatorul poate stabili daca succesiunea operatiilor este cea corecta sau nu. In cazul progamelor complexe acest lucru ar conduce la un consum mare de timp. Din acest motiv utilizatorul poate selecta un punct din program pe care sa il declare punct de oprire pana in care programul functioneaza normal si dupa care se trece la o executie pas cu pas. Marcarea punctului respectiv se face dupa selectarea optiunii din caseta de instrumente (Tools Palette)/ Set /Clear Breakpoint. Cu ajutorul mouse-lui se identifica firul iar actiunea care are ca rezultat vizualizarea unui punct rosu pe firul in cauza.

Fig. 1. Diagrama bloc cu utilizarea instrumentului de proba

Dupa verificarea corectitudinii functionarii instrumentului virtual acesta poate fi salvat (LabView / .).

Crearea pictogramei instrumentului virtual

Dupa construirea instrumentului virtual si in ideia utilizarii ulterioare ca subVI, acestuia i se poate asocia o pictograma / icon prin care sa fie reprezentat in constructiile viitoarelor instrumente care il apeleaza. Acest subVI trebuie sa aiba un conector pentru transferal de date .

Pentru constructia pictogramei se parcurg urmatoarele etape:

Selectarea diagramei construite prin utilizarea uneltei Tools Palette/ Position / Size / Select;

Selectarea optiunii pentru crearea unui subVI: bara de meniu orizontala diagrama bloc / Edit / Create SubVI. Actiunea are ca rezultat inlocuirea instrumentului virtual cu un icon de forma generala. Se exemplifica acest lucru pentru diagrama VI-lui corepunzator divizorului de tensiune (fig.4.38). Raman in "afara" icon-ului doar controalele si indicatoarele instrumentului virtual;

Salvarea SubVI - lui creat prin procedura clasicǎ: File/Save As (dupa indepartarea controalelor si indicatoarelor din afara iconu-lui);

Fig. Crearea unui subVI

Se deschide panoul frontal al SubVI-lui creat prin apelarea meniului contextual al icon-ului rezultat si selectarea optiunii Open Front Panel (fig.4.39);

Se selecteazǎ editarea icon-lui caracteristic pentru SubVI creat (fig.4.40)(click cu butonul stang in suprafata icon-ului). Actiunea are ca rezultat aparitia casetei de lucru din figura 4.41.

Fig. Deschiderea panoului frontal

Fig. Selectarea optiunii de editare a icon-ului

Fig. Caseta de editare a icon-ului

Se particularizeazǎ icon-ul specific pentru problema datǎ : se utilizeazǎ facilitǎtile legate de text, culoare, linii, stergere etc. disponibile in caseta cu "unelte" din figura 4.42. Semnificatia fiecareia dintre utilitati este prezentata in tabelul 4.2. Icon-ul personalizat este prezentat in figura 4.38 iar icon-ul si terminalele subVI-lui in figura 4.44.

Fig. Caseta cu instrumente pentru editare

Fig. Icon-ul personalizat

Fig. Icon-ul personalizat si terminalele vizualizate

Tabelul

Simbol

Denumire

Descrierea facilitatilor

Creion

Deseneaza sau sterge pixel cu pixel. Prin apasarea tastei <Shift> si tragere simultana a mouse-lui se pot trasa linii orizontale sau verticale

Linie

Deseneaza linii. Prin folosirea tastei <Shift> si tragerea simultana a mouse-lui se traseaza linii orizontale sau verticale

Selector culoare

Selecteaza culoarea de desenare prin prelevare din pictograma

Umplere

Umple o suprafata preselectata cu culoare de fond

Dreptunghi

Deseneaza un dreptunghi cu culoarea curenta

Dreptunghi plin

Deseneaza un dreptunghi cu culoarea curenta si il coloreaza cu culoarea de fond

Selectare

Selecteaza o parte a pictogramei pentru repozitionare, copiere sau stergere

Text

Permite scrierea textului in pictograma

Culoare curenta / de fond

Afiseaza culoarea curenta de desenare si culoarea de fond

Se salveazǎ constructia astfel realizatǎ cu numele subVI-lui dorit;

Utilizarea noului subVI se realizeazǎ prin apelarea functiei Select SubVI (fig.1.45)

Fig. Apelarea unui VI din caseta de functii

Structuri de program

Introducere

Circulatia datelor in mediul LabView si prin aceasta arhitectura instrumentului virtual are la baza functiile structurale (fig.4.46). In grupul de functii structurale sunt incluse si functiile legate de crearea unor variabile si o functie grafica.

Semnificatia acestor functii este urmatoarea:

a1 - bucla For (For Loop)

b1 - bucla While (While Loop)

c1 - structuri dependente de timp (Timed Structures)

a2 - structura Case (Case Structures)

a3 - structura secventiala plata (Flat Sequence Structure)

b3 - structura secventiala stivuita (Stacked Sequence Structure)

c3 - structura de evaluare matematica (Formula Node)

a4 - structura de dezactivare a diagramei (Diagram Disable Structure)

b4 - structura de dezactivare conditionata (Conditional Disable Structure)

c4 - nod feedback (Feedback Node)

a5 - variabila partajata (Shared Variable)

b5 - variabila locala (Local Variable)

c5 - variabila globala (Global Variable)

b6 - elemente de grafica (Decorations)

Fig. Functiile structurale

In variantele LabView 5, LabView 6 numarul de structuri utilizate este mai redus: structura secventiala, bucla While, bucla For, bucla Case.

Facand o analogie cu instrumentele fizice, aceste functii ar echivala cu placile de circuit, circuite logice s.a.m.d.

Structuri secventiale

O secventa structurala contine una sau mai multe subdiagrame sau cadre (frame) care se executa in ordine secventiala. In interiorul fiecarui cadru al unei structuri secventiale, ca si in restul diagramei bloc, dependenta datelor determina ordinea de executie a nodurilor.

Secventele structurale sunt recomandate pentru a controla succesiunea executiei programului cand nu exista o dependenta naturala a datelor si nu sunt disponibili parametrii de flux de trecere (flux - through).

Exista doua secvente structurale: structura secventiala plata (Flat Sequence Structure) si structura secventiala stivuita (Stacked Sequence Structure). Acestea se apeleaza selectand: Functions / Programming / Structures / Flat Sequence Structure sau Functions / Programming / Structures / Stacked Sequence Structure.

Structura secventiala plata (fig.4.47) se utilizeaza pentru a asigura executia unei subdiagrame inainte sau dupa o alta subdiagrama. Adaugarea unei noi structuri secventiale se obtine prin click - dreapta pe chenarul structurii si apelarea facilitatii dorite din meniul contextual. Un clik - dreapta pe bara orizontala a chenarului ofera doua facilitati: introducerea unei structuri secventiale in fata (Add Frame Before) sau introducerea unei structuri dupa (Add Frame After). Un click - dreapta pe bara verticala a chenarului ofera doar una din cele doua posibilitati: pe bara stanga permite Add Frame Before iar pe bara dreapta permite Add Frame After. Un click-dreapta pe o bara verticala a chenarului pentru o structura secventiala intermediara ofera facilitatea Insert Frame.

Fig. Structura secventiala plata

Structurile secventiale plate se executa de la stanga la dreapta cand toate datele legate la cadru sunt disponibile. Se recomanda structura secventiala plata pentru a evita secventele locale si pentru o documentare mai buna a diagramei bloc. In figura 4.48 se prezinta o editare a unei structuri secventiale plate formate din trei cadre.

Fig. Exemplu de structura secventiala plata cu 3 cadre

In primul cadru se realizeaza operatia de multiplicare a valorii controlui introdus in panoul frontal iar rezultatul este transferat spre cadrul 2. In cadrul 2 si 3 se executa alte doua operatii matematice care se bazeaza pe rezultatul anterior. Conditionarea privind succesiunea operatiilor si o ordonare clara a diagramei s-a solutionat astfel prin structura secventiala plata.

In figura 4.49 se prezinta o structura secventiala stiva formata din 3 cadre (0, 1, 2) cadrul activ in figura prezentata fiind cadrul 1.

Fig. Structura secventiala cu doua cadre

In fiecare cadru se pot introduce nodurile existente sau edita altele noi. Diagrama care trebuie executa prima se introduce in cadrul "0", diagrama care trebuie executata a doua in cadrul "1" s.a.m.d.

O exemplificare a utilizarii structurii secventiale stiva este prezentata in    figura 4.50.

Fig. Exemplu de structura secventiala stiva: a - cadru 0; b - cadru 1; c - cadru 2

In primul cadru se realizeaza conform schemei logice impuse o operatie de multiplicare iar rezultatul este vizualizat prin indicatorul Numeric 2 si utilizat atat in cadrul 2 cat si in cadrul 3. Acest lucru este posibil prin crearea secventei locale apeland din meniul contextual pentru click dreapta pe conturul vertical al cadrului (fig.4.51).

Secventa locala devine activa dupa conectarea unui fir la aceasta. Starea activa este semnalizata prin aparitia unei sageti in interiorul semnului alocat secventei.Pe acelasi principiu rezultatul operatiei matematice din cadrul 2 este posibil sa fie utilizat in cadrul 3 (dar nu si in cadrul 1, fluxul datelor fiind doar spre cadrele de ordin superior).

Terminalul local al secventei poate fi mutat de utilizator cu unealta de editare ori unde pe cadrul instructiunii. Se recomanda asocierea unei etichete descriptive firelor conectate la terminalele de intrare / iesire locale ale secventei.

Fig. Crearea secventei locale si semnul aferent terminalului

Bucla For

Bucla For repeta un fragment din codul diagramei bloc de un numar predeterminat de ori. Aceasta structura este echivalenta cu ciclul For din programarea clasica.

Structura se poate apela prin selectarea Functions / Programming / Structures/ For Loop. Rezultatul selectiei consta in posibilitatea editarii in spatiul diagramei bloc a unui cadru care se dimensioneaza scopului urmarit (fig.4.52). Sunt remarcate doua terminale:

Contorul "N" care indica numarul de cicluri n de executat din operatiile considerate. Valoarea acestuia se impune sa fie un numar natural.

Indexul "i" care indica valoarea curenta a iteratiei si ia valori in intervalul

Fig. Bucla For

Pentru exemplificare, in figura 4.53 este prezentata diagrama bloc - bazata pe o structura For - si panoul frontal pentru constructia functiei "sin". Functia "sin" in cadrul buclei For a fost apelata din caseta de functii: Functions / Mathematics / Elementary & Special Functions / Trigonometric Functions.

Fig. Exemplificarea buclei For prin constructia functiei "sin"

Bucla For poate lucra cu registrii de deplasare. Acestia se utilizeaza pentru transferal datelor de la o iteratie catre iteratia urmatoare. Acestia se pot accesa apeland din meniul contextual dupa click - dreapta pe bara verticala a cadrului (fig.4.54). Registru de deplasare contine doua terminale corespondente, situate in opozitie, pe cele doua bare verticale ale cadrului. Terminalul din dreapta memoreaza valoarea la sfarsitul iteratiei. Un registru de deplasare poate lucra cu orice tip de date: numeric, Boolean, sir de caractere etc.

O facilitate importanta este aceea ca registrii de deplasare pot readuce in iteratia curenta rezultate din iteratii anterioare. Aceasta facilitate este extrem de utila cand se fac medieri ale datelor. In acest caz este necesar sa se creeze terminale aditionale pe bara din stanga a cadrului buclei apeland Add Element dupa click dreapta in terminalul registrului (fig.4.55).

Fig. Apelarea registrilor de deplasare (a) si semnul aferent terminalelor (b)

Fig. Terminale aditionale suplimentare

Bucla While

Aceasta se apelezeaza prin Functions / Programming / Structures/ While Loop. Bucla unei informa repeta de mai multe ori o secventa de cod din diagrama bloc atata timp terminalul conditional (este un terminal de intrare) primeste o valoare Booleana particulara. Cadrul de lucru dispune de un terminal de iteratie "i" si terminalul de conditionare (fig.4.56). Dupa selectare si dimensionarea cadrului la dimensiunea dorita se pot introduce obictele necesare pentru editare. Valoarea Booleana particulara se selecteaza din meniul contextual (fig.4.56). In versiunile LabView 5, LabView 6 bucla While avea o singura optiune: continua pana cand valoarea este adevarata (Continue if True).

Bucla While dispune de facilitatea lucrului cu registrii de deplasare in mod asemanator ca si in cazul buclei For .

Fig. Bucla While si terminalele aferente

Exemplificam utilizarea buclei While in constructia unui instrument virtual pentru achizitia unei informatii. In acest scop apelam la o structura secventiala in stiva cu doua cadre.

In primul cadru se introduce bucla While iar in cadrul al doilea functia de generare a unui numar aleatoriu (Functions / Programming / Numeric / Random Number (0 - 1)) si achizitia semnalului (Controls / Graph / Waveform Chart).

Achizitia de date demareaza prin apasarea unui alt buton si dureaza atata timp cat acest buton nu isi schimba starea logica. Butoanele se selecteaza din caseta de controale: Controls / Modern / Boolean.

Fig. Selectarea actiunii mecanice pentru un buton de apasare

Alegem din caseta un buton de apasare (Push Button). Alegerea actiunii mecanice a controlului Boolean se poate realiza fie selectand Mechanical Action (fig.4.57) fie din caseta de proprietati a acestuia (fig.4.58). A doua varianta are avantajul si posibilitatii de vizualizare a modului de actiune (Preview Selected Behavior).

Fig. Caseta cu proprietati a butonului de apasare

Diagrama bloc cu structura secventiala stiva este prezentata in figura 4.59.

Fig. Exemplificarea utilizarii structurii secventiale stiva: a - cadrul 0; b - cadrul 1

Structura de tip caz - Case

Structura Case se poate plasa in diagrama bloc dupa selectarea ei din caseta de functii: Functions / Programming / Structures / Case. Este o structura existenta si in versiunile LabView 5, LabView 6 si echivaleaza cu instructiuni de tipul If .Then.din programarea clasica bazata pe text.

Reprezentarea grafica a structurii are la baza un cadru redimensionabil la cerintele utilizatorului, un terminal selector si o eticheta a selectorului (fig.4.60).

Fig. Structura Case

Adaugarea sau stergerea unui cadru este posibila prin click dreapta pe cadru si alegerea optiunii dorite din caseta de meniu deschisa: adaugarea unui caz dupa.(Add Case After), adaugarea unui caz inainte.(Add Case Before), stergerea acestui caz (Delete This Case), inlatura cazurile goale (Remove Empty Cases), etc. Valoarea conectata la terminalul selector determina care caz se executa. Valoarea de control poate fi de tip Boolean (exista doua cazuri True si False), de tip numeric, de tip sir sau de tip enumerate.

Varianta implicita a structurii Case este cu valoarea de control de tip Boolean (fig.4.61).

Fig. Structura Case pentru variabila de control Booleana

Pentru valoarea de control de tip sir se introduc valorile in eticheta selectorului prin apelarea Add Case After sau Add Case Before. Functie de informatia de pe terminalul selector se va executa secventa de cod continuta in cadrul respectiv (fig.4.62).

Fig. Structura Case cu variabila control sir

Pentru valoare de control de enumerare se introduce in panoul frontal un control Enum (Controls / Modern / Ring & Enum / Enum) si se conecteaza in diagrama bloc pe terminalul selector de intrare. Printr-un clik - dreapta se deschide caseta de dialog al controlului Enum din care se selecteaza - Add Case After sau Add Case Before - introducerea valorii de control. Dupa introducerea tuturor valorilor dorite, actualizarea etichetei selectorului se face selectand optiunea Add Case for Every Value din caseta de dialog derulanta a etichetei selectorului (fig. 4.63). O astfel de structurare este utila pentru construirea unui generator de semnal virtual.

Fig. Structura Case cu variabila control de enumerare

Varianta pentru valoare de control numerica este exemplificata in figura 4.64.

Valorile de control au fost inserate in eticheta selectorului pe principiul variantei sir. In exemplul construit exista sase cadre cu secvente de calcul numeric iar rezultatul este afisat pe un indicator numeric. Prin controlul numeric Dial se selecteaza care din cele sase cazuri se executa. In figura 4.64 s-a prezentat executia cazului al saselea.

Fig. Exemplficarea structurii Case cu variabila de control numerica: a - panoul frontal;

b - diagrama bloc

Structura - nodul formula / de calcul (Formula Node )

Nodul Formula realizeaza evaluarea numerica a formulelor sau expresiilor in diagrama bloc, similar cu C.

Noua structura se apeleaza in mod asemanator cu cele anterioare. Dupa apelare si redimensionarea cadrului la dorinta utilizatorului, se poate introduce in ea modelul matematic dorit utilizand instrumental de editare din caseta de lucru cu instrumente (Tools Palette).

Avantajele utilizarii formulelor de calcul sunt urmatoarele:

Se usureaza scrierea, depanarea si intelegerea formulelor matematice;

Se elimina erorile, care pot aparea la transcrierea formulelor matematice complexe in limbajul grafic (se folosesc noduri si fire);

Se reduce suprafata ocupata in diagrama bloc fata de cazul implementarii prin noduri si fire

Editarea instructiunilor de atribuire se realizeaza cu uneltele de etichetare sau de operare. Finalizarea operatiilor este determinata de selectarea din bara cu "unelte" a optiuni <Enter> sau prin actionarea butonuluidin tastatura. Trecerea de la un rand la urmatorul se realizeaza in acelasi mod, prin tasta <Enter>.

Caseta pentru variabilele de intrare se aduga pe conturul grafic al nodului prin meniul contextual asociat chenarului: Add Input / Add Output (fig.4.65a). Denumirea variabilei se editeaza in caseta vizata cu ajutorul instrumentului de editare (Tools Palette). In general variabilele de intrare se pozitioneaza in stanga iar cele de iesire in dreapta.

Nodul Formula agreaza lucru cu o serie de functii (tabelul 4.3) si o serie de operatori (tabelul 4.4).

Fig. Caseta si variabilele de intrare

Tabelul

Functia (sintaxa)

Semnificatie

Returneaza valoarea absoluta a lui x

,,

Returneaza inversa functiei trigonometrice in rad

Calculeaza valoarea lui e la puterea x

Returnraza cel mai apropiat intreg a lui x

Returneaza valoarea maxima dintre x si y

Returneaza valoarea minima dintre x si y

Calculeaza radicalul din x

Calculeaza valoarea functiei trigonometrice pentru x in rad

Calculeaza logaritmul natural din x

Calculeaza logaritmul in baza 10 din x

Calculeaza logaritmul in baza 2 din x

Tabelul

Operator

Semnificatie

atribuire

Adunare, scadere, inmultire, impartire, ridicare la putere

||, &&

SAU logic, SI logic

<, <=, >, >=, !=, ==

Mai mic, mai mic sau egal, mai mare, mai mare sau egal, diferit, egalitate

Se recomanda comentarea operatiilor: inceputul comentariului este cu caracterele "/*" si se termina cu secventa "*/". In figura 4.66 se prezinta starea panoului frontal de evidentiere a rezultatelor si partea de diagrama. Se poate remarca prezenta comentariilor de inceput si sfarsit.

Fig. Panoul frontal si diagrama pentru formula nod

Unele variabile pot sa fie declarate in interiorul structurii, obligatoriu inainte de relatia de calcul care le apeleaza. In figura 4.67 se exemplifica modul de declarare interna a variabilelor si calculul radacinilor pentru ecuatia de gradul 2.

Fig. Declararea variabilelor pentru formula nod

Structura Formula Node poate fi utilizata pentru implementarea unor bucle de calcul conditionale. Exemplificam aceasta posibilitate in evaluarea expresiei . In limbajul de programare clasic codul corespunzator este prezentat in figura 4.68 si are semnificatia:

daca atunci executia programului returneaza valoarea radicalului;

daca atunci executia programului returneaza expresia .

Modul de implementare in LabView este ilustrat in figura 4.63. Cele doua cazuri posibile sunt evidentiate in fig. 4.68a si fig.4.68b.

Fig. Bucla de calcul conditionata

Structura Formula Node permite implementarea buclelor DO..WHILE, FOR si WHILE.

Variabile locale

Structurile prezentate anterior sunt caracterizate de posibilitatea utilizarii datelor prin citirea terminalelor din diagrama bloc. Unui element de pe panoul frontal ii corespunde un singur terminal in diagrama bloc. Exista cazuri cand este necesar ca un terminal sa poata fi accesat simultan din mai multe locuri, in diagrama bloc. Solutia problemei o constituie utilizarea variabilelor locale.

Variabilele locale corespund elementelor componente ale panoului frontal - controale si indicatoare - si sunt accesibile doar in diagrama bloc a VI in cauza. Prin utilizarea lor se permite accesul din diagrama bloc la valorile controalelor/ indicatoarelor din panoul frontal in cazul in care nu este posibila o legatura prin fire.

Unui control / indicator ii pot corespunde mai multe variabile din diagrama bloc. O variabila corespunde insa unei singure componente din panoul frontal. Numarul variabilelor locale este nelimitat. In acest mod din diverse puncte ale diagramei bloc poate fi apelata o aceeasi componenta din panoul frontal.

Crearea unei variabile locale presupune existenta componentei in panoul frontal. Dupa deschiderea casetei de dialog a controlului se selecteaza Create / Local Variable (fig.4.69).

Pentru varianta LabView 5 si LabView 6 crearea este indicata si inserata in diagrama bloc in apropierea terminalului corespunzator componentei (fig.4.70). Pentru varianta LabView 8.2 crearea este indicata prin trecerea prompterului mouse-lui sub forma casetei variabilei iar utilizatorul o va pozitiona in locul dorit in diagrama bloc. Este exemplificata utilizarea variabilei locale in figura 4.71. Butonul de control pentru care s-au creat doua variabile locale controleaza simultan o informatie vizualizata la indicatoarele 1, 2, 3. Diagrama este prezentata in figura 4.72.

Fig. Selectarea optiunii Local Variable

Fig. Crearea variabilei locale

Fig. Utilizarea variabilei locale

Selectarea varaibilei locale se poate realize si prin apelarea din: caseta de functii / Programming / Structures / Local. In acest caz in diagrama bloc se insereaza o eticheta cu semnul intrebarii.

Fig. Diagrama corespunzatoare pentru panoul frontal din figura 4.66

Deschiderea meniului contextual permite selectarea carui control / indicator i se asociaza variabila locala (fig.4.73). Exemplificarea este realizata pentru panoul frontal din figura 4.74. In contiunare se urmeaza pasii anteriori de editare a diagramei bloc.

Fig. Crearea variabilei locale

Printr-un singur buton Start / Stop si respectiv un singur buton de reglaj se controleaza cele doua secvente.

Fig. Exemplu de utilizare a variabilei locale

Eliminarea variabilei locale se realizeaza prin selectarea ei cu ajutorul uneltei de editare si actionarea tastei <Delete>.

Variabila locala poate actiona in doua moduri:

prin intermediul ei se poate consulta (urmari, citi) valoarea componentei in cauza, variabila avand un rol de indicator (.to Write);

prin intermediul ei se poate actualiza (modifica) valoarea componentei, variabila avand un rol de control (.to Read).

Selectarea unui mod de lucru sau al celuilalt se realizeaza din meniul contextual (fig.4.75).

Fig. Selectarea modului de lucru pentru variabila locala

Variabilele locale se pot utiliza pentru:

Controlul cu un singura componenta a mai multor secvente repetitive Do - While;

Consultarea valorilor componentelor referite la inceputul executiei IV;

Atribuirea unor valori implicite componentelor din panoul frontal chiar la inceputul executiei IV;

Variabila globala

Apare uneori necesitatea transferarii informatiilor intre mai multe VI-uri care ruleaza in acelasi timp. Solutia problemei in acest caz sunt variabilele globale. Acestea se apeleaza din caseta de functii / Programming / Structures /Glob.

Dupa apelare, in diagrama bloc apare nodul variabilei locale care se pozitioneaza de catre utilizator in spatiul diagramei bloc.

Fig. Eticheta variabilei globale

Eticheta cu semnul intrebarii afisata are semnificatia ca nu este inca asociata nici unei componente. Dupa un dublu -click in caseta variabilei globale se deschide panoul frontal al variabilei - Global 1 Front Panel in care se pot introduce controalele / indicatoarele dorite (fig.4.77).

Fig. Exemplificarea utilizarii variabilei globale

Se apeleaza meniul contextual si se alege componenta careia i se va asocial variabila (fig.4.78). In acest moment eticheta initiala va fi schimbata in cea a componentei avute in vedere.

Fig. Apelarea meniului contextual pentru alegerea componentei

Un exemplu de utilizare a variabilei globale este prezentat in figura 4.79.

Fig. Exemplificare de utilizarea variabilei globale

La fel ca si variabilele locale, variabilele globale pot fi de tipul read global (lucreaza ca o sursa de informatie) si write global (lucreaza ca un indicator pentru informatia vehiculata). In figura . observam prezenta ambelor varinate. Configurarea variabilei globale se poate realize din meniul contextual al acesteia, selectand Change To.. .Read / Write.Utilizarea variabilelor locale si globale trebuie facuta cu rezerve avand in vedere unele dezavantaje legate de greutati in urmarirea fluxului informational, scaderea vitezei de lucru, intarzieri in citirea informatiei daca aceasta se face in parallel.

Noduri proprietate

Crearea nodului proprietate poate fi initiata in panoul frontal sau in diagrama bloc prin accesarea meniului contextual: ..Create / Property Node.

Fig. Crearea nodului proprietate

Prin intermediul acestora se pot defini:

Atribute fizice: dimensiuni, culoare, pozitie pe ecran etc;

Comportare: obiectul sa fie vizibil / invizibil, activ / inactiv la un moment dat, tipul de afisare utilizat, proprietati asociate unui instrument grafic etc.

Fig. Definirea unei proprietati

Fig. Exemplificarea utilizarii nodului proprietate pentru instrumentul Meter

Nodul proprietate poate fi identificat dupa eticheta controlului / indicatorului referit. Nodul proprietate afiseaza initial un singur terminal prin intermediul caruia se permite accesul la o anumita proprietate. Aceasta proprietate este afisata in caseta corespunzatoare terminalului (fig.4.81). Ex: controlului numeric i s-a asociat un nod proprietate fiind posibil accesul la proprietatea de vizibilitate (fig.4.81a).

Apelarea meniului contextual corespunzator nodului proprietate permite vizualizarea celorlalte proprietati ale nodului (fig.4.83). Selectarea modului de folosire al unui terminal - citire (control) sau scriere (indicator) - se face din meniul contextual: Change To Write sau Change To Read.

Valoarile proprietatilor au semnificatiile:

Position - retine coordonatele obiectului relativ la coltul stanga superior al panoului frontal. Coordonatele sunt exprimate in pixeli si se retin intr-o grupare de date;

Disabled (inactiv) - se controleaza interactiunea operatorului cu obiectul: "0" permite operarea, "1" ingheata obiectul iar valoarea "2" afiseaza obiectul umbrit;

Key Focus (Focus) - indica proprietate unui obiect de a primi date din partea operatorului de la tastatura. Proprietatea poate fi activata prin selectarea obiectului cu mouse-ul, utilizarea unei taste asociate, apasarea tastei <Tab> de parcurgere a obiectelor. Valoarea logica True a proprietatii permite asocierea acesteia la obiectul respectiv;

Blinking (afisare intermitenta) - permite afisarea intermitenta a obiectului pentru valoarea logica True. Valoarea booleana Fals stabileste incheierea afisarii intermitente.

Fig. Apelarea meniului contextual pentru nodul proprietate

Unui nod proprietate i se pot asocia mai multe terminale cu acces la proprietati diferite (fig.4.84).

Fig. Asocierea unor proprietati diferite

Redimensionarea si atasarea de noi proprietati se poate realiza prin apelarea la meniul contextual si optiunea Add Element.

Indicatoare si controale pentru date tip sir de caractere, liste si tabele

Introducere

Un rol aparte intre controalele / indicatoarele din mediul LabView il joaca cele pentru lucrul cu sir de caractere si tabele. Componentele din aceasta categorie permit citirea / afisarea acestui tip de date.

In versiunea LabView 5 aceste obiecte se localizeaza in paleta de controale: Controls / String & Table (fig.4.85). Incepand cu versiunea LabVIEW 6.01 obiectul Strings este inclus in cadrul grupului String & Path (fig.4.86a) iar obiectul Tables este inclus in cadrul unui grup separate denumit List & Table (fig.4.86b).

Fig. Controale tip sir si tabele (LabView 5)

Fig. Localizarea controalelor sir incepand cu varianta LabView 6

Sir de caractere

Un control si un indicator pentru sir de caractere sunt ilustrate in fig.4.87. Diferenta grafica consta in banda verticala prezenta in pictograma indicatorului.

Fig. Control si indicator tip sir

Obiectul de interfata dispune de un meniu contextual prezentat in figura 4.88. Se pot selecta, pe principiul clasic, diverse optiuni rezultate din aplicatia de realizat:

optiunile referitoare la display permit afisarea obisnuita a sirului de caractere, in codul "" (backslash) sau hexa;

protejarea editarii este oferita de optiunea Password Display, s.a.m.d.

Fig. Meniul contextual pentru obiectul tip sir

Un alt obiect al grupului de controale String.. este controlul Combo Box. Selectand din meniul contextual optiunea Edit Items se va deschide o caseta de dialog in care se poate introduce sirul de caractere dorit. In timpul executiei programului, utilizatorul va putea selecta sirul dorit (fig.4.89).

Fig. Caseta de dialog

Bara de defilare (scroll bar) verticala pentru indicator se selecteaza la optiunea Show / Scrollbar. Optiunea este disponibila pentru ambele obiecte cu conditia ca dimensiunea verticala a pictogramei sa fie minimum de trei ori inaltimea unei linii de text.

Pe langa facilitatile prezentate LabView dispune de o serie de functii legate de utilizarea sirurilor. Acestea se apeleaza fie din caseta de functii / String, fie din diagrama bloc si meniul contextual al controlului respectiv (fig.4.90).

Fig. Functii in utilizarea sirurilor

In figura 4.91 se exemplifica utilizarea functiei String Length (lungimea sirului) pentru obtinerea informatiei despre sirul manipulat. In diagrama bloc din figura 4.92 se prezinta si posibilitatea crearii unei proprietati pentru indicatorul utilizat (Create / Property Node).

Fig. Exemplu de utilizarea functiei pentru lungimea sirului

Fig. Crearea unei proprietati

O noua exemplificare privind utilizarea functiei de concatenare (. Concatenate Strings) este prezentata in figura 4.93.

a)

b)

Fig. Panoul frontal (a) si diagrama (b) pentru exemplificarea functiei de concatenare

Conversia unui numar intr-un sir prin utilizarea functiei Number to Decimal String este exemplificata in figura 4.94.

Conversia unui numar intr-un sir prin utilizarea functiei Number to Hexadecimal String este ilustrata in figura 4.95.

Fig. Conversia unui numar intr-un sir

Fig. O alta posibilitate de conversie numar - sir

Cai de fisiere (Path)

Calea fisierului (path) reprezinta o posibilitate de identificare si vizualizare ale unui fisier. Posibilitatile de lucru oferite sunt de tip control sau indicator. In acelasi timp acest tip de control poate lucra cu functii specifice apelate din caseta de functii. In figura 4.96 se prezinta panoul frontal si diagrama aferenta pentru un instrument virtual de citire a unui fisier text a2.txt, indicarea continutului si a lungimii sirului de caractere.

Fig. Panoul frontal (a) si diagrama aferenta (b) pentru vizualizarea unui fisier

Liste si Tabele

Listele si tabelele sunt optiuni pentru panoul frontal in vederea furnizarii unor date sub forma tabelara. Continutul informatiilor este indicat prin simbolul continut in fiecare celula.

In figura 4.97 se prezinta utilizarea unei liste multicoloana (Multicolumn Listbox). Instrumentul virtual creat permite simularea achizitiei a trei informatii. Selectarea canalului de achizitie se poate realiza prin intermediul unui control lista (fig.4.97a). Instrumentul virtual este structurat in doua secvente. Prima secventa contine o bucla While Loop prin care se simuleaza pornirea si oprirea achizitiei (fig.4.97b). Obiectului lista ii este asociat o proprietate nod cu o doua valori referitoare la denumirea coloanei si numele operatiei (fig.4.97c).

a)

b)

c)

Fig. Panoul frontal si diagrama de exemplificare a utilizarii unui control lista

Utilizarea obiectului Table este ilustrata in exemplul din figura 4.98. Valorile aleatoare generate prin functia Random Number (0-1) sunt vizualizate in forma originala, dupa operatia de adunare cu constanta 1 si respectiv dupa ridicarea la patrat (fig.4.98a). Vizualizarea este posibila in cadrul tabelului creat si pentru care:

S-a optat din meniul contextual pentru vizibilitatea barei verticale de defilare Visible Items / Vertical Scrollbar si respectiv orizontale Visible Items / Horizontal Scrollbar;

S-a optat din meniul contextual pentru barele de notare ale semnificatiei liniilor Visible Items/Row Headers si ale coloanelor Visible Items / Column Headers;

S-au notat semnificatiile liniilor si coloanelor;

S-a construit diagrama corespunzatoare (fig.4.98b). Pentru realizarea constructiei s-a apelat in mod suplimentar la functiile: constructia unei matrici Array / Build Array, transpunerea intr-o matrice 2D Array / Transpose 2D Array, conversia numar - sir Strig - Number Conversion Number To Fractional String. S-a apelat de asemenea introducerea controlului latimii numarului reprezentat (width) si respectiv a controlului pentru precizia de reprezentare (precision). Modul de introducere a acestor controale se realizeaza prin: selectarea uneltei Tools/ Connect Wire, clic butonul drept al mouse-lui in zona terminalului dorit si selectarea din meniul contextual care se deschide Create / Control.

a)

b)

Fig. Panoul frontal (a) si diagrama bloc pentru lucru cu obiectul Table

Controale de tip boolean

Componentele de interfata ale panoului frontal, apartinand tipului boolean, au doua valori posibile, corespunzand: starii de adevar - True sau fals - False. Valoarea logica "fals" este cea implicita cu care componenta este introdusa in panoul frontal. Versiunea LabView 8.2 contine controale booleane distribuite in subpaleta Modern / Boolean (fig.4.99a) si un numar considerabil mai mare in subpaleta Clasic / Boolean (fig.4.99b).

Fig. Controale de tip Boolean

Indicatoarele booleene sunt reprezentari vizuale ale valorii logice si se prezinta sub forma unor led-uri rotunde sau patrate. In unele variante exista o suprapunere de functie prin existenta indicatorului optic in control. In figura 4.100 se prezinta varianta grafica a doua controale care includ si indicator. In scop demonstrativ fiecare control este conectat la un indicator suplimentar.

Fig. Controale si indicatoare de tip Boolean

Exista mai multe realizari grafice de controale tip boolean: butoane care pot fi apasate, comutatoare orizontale si verticale, intrerupatoare de tip parghie (bistabile).

Controalele / indicatoarele de tip boolean dispun de un meniu contextual asemanator in partea superioara celor numerice dar diferit in ceea ce priveste referirile la tipul de data reprezentat. Controalele au activa optiunea Mechanical Action (fig.4.101) care permite selectarea modului de comutare sau zavorare functie de apasare sau eliberare. Prin alegerea optiunii Change to Indicator / Change to Control rolul obiectului in panoul frontal poate fi schimbat.

Fig. Meniul contextual si variantele pentru actiunea mecanica

Pictograma asociata optiunilor comportarii mecanice pune in evidenta in mod grafic succesiunea operatiilor prin trei diagrame: actiunea utilizatorului cu mouse-ul asupra controlului (M), noua valoare logica a controlului (V), momentul preluarii valorii controlului la nivelul diagramei bloc (RD).

Semnificatia comportarii mecanice a controalelor booleene este urmatoarea:

a1 - controlul isi modifica valoarea logica la fiecare apasare a butonului mouse-lui. Valoarea controlului nu este afectata de preluarea in timp a in diagrama bloc (RM lipsa);

a2 - valoarea logica a controlului se modifica dupa eliberarea butonului mouse-lui. Controlul isi pastreaza valoarea pana la urmatoarea interactiune a utilizatorului. Valoarea controlului nu este afectata in timp de diagrama bloc.

a3 - valoarea logica a controlului se modifica la apasarea butonului, se retine pana la eliberarea butonului mouse-lui dupa care revine la valoarea initiala anterioara apasarii. . Valoarea controlului nu este afectata in timp de diagrama bloc.

b1 - valoarea logica a controlului se modifica la apasarea butonului, este retinuta la starea actuala pana cand este preluata de diagrama bloc (exista o scurta "temporizare") si revine la starea anterioara actionarii dupa preluarea valorii in diagrama bloc.

b2 - valoarea logica a controlului se modifica la eliberarea butonului mouse-lui, ramane la noua stare pana cand este preluata de diagrama bloc dupa care revine la starea initiala anterioara interactiunii.

b3 - valoarea logica a controlului se modifica la apasare si ramane in starea rezultata pana cand diagrama bloc a preluat noua valoare si a fost eliberat butonul mouse-lui.

Grupare de date utilizand Matrice (Array) si Grup / Cluster si sir / String

Introducere

Obiectele mentionate sunt controale / functii care permit gruparea datelor. Caracterele ASCII sunt grupate prin secventa String. O matrice / array are elementele constituite din date de acelasi tip. Un grup / cluster reuneste date de tipuri diferite.

Matrice

Matricea poate avea una sau mai multe dimensiuni si pana la 231 - 1 elemente pe fiecare dimensiune (dependent de memoria disponibila).

Se pot constitui matrici cu elemente numerice, booleene, cai (path), sir, forma de unde (waveforms) si grup (cluster).

Matricile sunt ideale pentru stocarea datelor colectate din buclele de calcul unde fiecare iteratie a buclei produce un element al matricii.

Exista restrictii in ceea ce priveste crearea matricilor:

Nu se poate crea matrice cu elemente din matrici. Daca se doreste o matrice multidimensionala, se poate apela la matrice pe baza din grupuri / cluster unde fiecare grup / cluster contine una sau mai multe matrici;

Nu se poate crea matrice din controale panel, controale tab, controale ActiveX, diagrame sau grafice.

Pentru a localiza un element in matrice avem nevoie de un index pe fiecare dimensiune. Indicele este un numar intreg, cuprins intre 0 si N-1 unde N este numarul de elemente ale matricii pe dimensiunea specificata.

Un exemplu de matrice 1D cu noua coloane (08) contine informatia privind modul de variatie in timp a caderii de tensiune pe un element. Fiecare element al matricii reprezinta valorile tensiunii in mod succesiv, la intervale de timp egale (fig.4.102).

Un exemplu mai complex de reprezentare a gruparii de date este ilustrat in figura 4.103.Matricea 1D contine informatia despre o reprezentare grafica X-Y. Fiecare punct al matricii este un grup (cluster) compus dintr-o pereche de valori numerice reprezentand coordonatele X, Y. Pentru a ilustra corespondenta valorilor cu punctele reprezentate s-a utilizat un segment orientat de la un punct initial spre punctul urmator. Succesiunea de reprezentare are legatura doar cu indexul general.


Index

[mV]

Fig. Exemplificarea unui grup de date printr-o matrice 1D


Index

Coordonata X

Index

Coordonata Y

Fig. Matrice 1D avand elementele formate din grup de valori numerice

O matrice 2D memoreaza datele elementelor intr-o retea formata din linii si coloane. In acest caz este necesara existenta unui index pentru linii si a unui index pentru coloane (fig.4.104).

Indexul liniilor

Indexul coloanelor

Fig. Matrice 2D cu specificarea indexului pentru linii si coloane

Matricea din figura 4.104 are 6 linii si 7 coloane continand de elemente. Un exemplu sugestiv de matrice 2D este tabla de sah (8 linii, 8 coloane). La un moment dat oricare pozitie poate fi goala sau continand o piesa.

Matricea 2D se poate obtine si printr-o suplimentare a liniilor la o matrice 1D. Considerand grup de date continut ca diverse semnale in timp, indexul coloanelor se ataseaza practic valorilor numerice succesive ale unui semnal. In acelasi timp indexul liniilor se ataseaza categoriei de semnal. In figura 4.105 este exemplificata aceasta abordare pentru doua forme de variatie a unor semnale si 9 puncte corespunzatoare valorilor numerice pe fiecare semnal.


Fig. Reprezentarea a doua semnale intr-o matrice 2D

Crearea unei matrici cu controale sau indicatoare presupune doua etape constand din combinarea unei structuri matriceale aleasa din paleta Controls / Array, Matrix & Cluster (LabView 8.2) (fig..106) cu un obiect de tip date - numeric, Boolean,.

Fig. Localizarea subpaletei Array

Cele doua etape enuntate anterior pot fi detaliate in mod suplimentar:

Etapa 1 - se selecteaza o structura matriceala din paleta Controls / Array, Matrix & Cluster si se pozitioneaza in panoul frontal (fig.4.107)

Fig. Grafica (pictograma) structurii matriceale in panel (a) si in diagrama bloc (b)

Selectarea unui obiect - din caseta de controale - care urmeaza sa devina element al matricii si pozitionarea lui in suprafata activa a structurii matriceale (fig.4.108), (fig.4.109)

Fig. Matrice cu control Boolean si indicatorul echivalent asociat

Fig. Matrice cu control numeric si indicatorul echivalent asociat

Prin apelarea meniului contextual al obiectului devenit element al matricei / tabloului putem adauga dimensiune acesteia (fig.4.110)

Fig. Pictogramele unei matrici cu elemente numerice: matrice control (a) si indicator (b)

Cu ajutorul structurilor For Loop si While Loop se pot genera in mod automat matrici in cadrul unui proces denumit auto-indexare.

In figura 4.111 se prezinta crearea unei matrici numerice in cadrul procesului de auto-indexare prin utilizarea structurii For Loop.

Fig. Panoul frontal (a) si diagrama bloc (b) in procesul de auto-indexare

In cadrul procesului prezentat in figura 4.112 toate valorile generate in bucla For, in mod succesiv, sunt transferate si memorate in matricea indicator.

Fig. Meniul contextual al tunelului

Daca este necesara pastrarea doar a ultimei valori generata in cadrul buclei, trebuie ca din meniul contextual al tunelului (simbolizat prin patratul cu contur negru de pe conturul buclei) sa fie selectata optiunea Disable Indexing. In acest caz se transfera o singura valoare si singurul lucru modificat este indicatorul conectat pe iesirea buclei, un indicator numeric (fig.4.113). Schimbarea este semnalizata si la nivelul simbolului tunelului.

Fig. Transferul ultimei valori generate in cadrul buclei For Loop

Introducerea unei valori in cadrul unei bucle For Loop este ilustrata in figura 4.114. Se remarca valoarea introdusa si faptul ca in acest caz indexarea este validata.

Fig. Procesul de auto-indexare la introducerea valorilor in cadrul buclei

Introducerea tuturor valorilor in cadrul buclei necesita validarea optiunii Disable Indexing (fig.4.115).

Fig. Introducerea valorilor intr-o bucla

Crearea unei matrici bidimensionale 2D este posibila prin utilizarea a doua bucle inseriate (una in interiorul celeilalte). Un astfel de proces este ilustrat in figura 4.116. Bucla exterioara defineste elementele de pe linii iar bucla interioara defineste coloanele matricei 2D. Matricea numerica creata contine 3 linii si 2 coloane.

Bucla interioara exporta spre exterior, prin tunelul aferent, o matrice 1D. Se poate verifica acest lucru prin introducerea corpului de proba (simbolizat prin mumarul 1). Bucla exterioara exporta prin tunelul aferent o matrice 2D. Si in acest caz se poate verifica traficul informatiei prin corpul de proba (simbolul 2). Acest mod de lucru reiese si din tipul firelor de legatura.

Fig. Crearea matricei 2D utilizand bucla For Loop in cadrul procesului de auto-indexare

Cele mai multe din functiile pentru matrici sunt destinate pentru manipularea acestora. Functiile obisnuite sunt disponibile in subpaleta Array in caseta de functii Functions / All Functions (LabView 7) sau in subpaleta Programming / Array (fig.4.117).

Fig. Paleta functiilor pentru lucru cu matrici

Functia Array Size returneaza numarul de elemente ale unei matrici de intrare notata generic A. Daca matricea A este n- dimensionala, marimea de iesire returnata este o matrice B cu n elemente. Fiecare element al matricei B contorizeaza numarul de elemente al matricei A pe o dimensiune (fig.4.118, fig.4.119).

Fig. Functia Array Size si raspunsul pentru matricea de intrare A

Fig. Functia Array Size si raspunsul pentru matricea de intrare A de tip 2D

Functia Initialize Array creaza o matrice n - dimensionala cu elementele continand valorile specificate de utilizator. Daca se doreste crearea mai multor dimensiuni, pentru matrricea de initializat, se apeleaza la meniul contextual in care se selecteaza Add Dimension. Un rezultat echivalent se obtine daca se utilizeaza unealta de lucru Positioning din caseta Tools. In figura 4.120 se prezinta pictograma initiala a functiei (a) si cea transformata pentru mai multe dimensiuni (b).

Fig. Pictogram functiei de initializare a unei matrrici

In figura 4.121 se prezinta initializarea unei matrici 1D cu 5 elemente pentru care s-a considerat valoarea numerica 1.12. Se prezinta existenta celor doua posibilitati de creare a matricii 1D.

Fig. Utilizarea functiei de initializare a unei matrici 1D cu elementele de valoare 1.12

Initializarea unei matrici 2D este ilustrata in figura 4.122. In scop demostrativ    s-a supradimensionat instrumentul de vizualizare a matricii initializate. Se vede astfel ca dimensiunea reala a matricii este cea impusa.

Fig. Initializarea unei matrici 2D

Functia Buid Array concateneaza mai multe matrici sau adauga elemente unei matrici existente. Pictograma functiei poate fi redimensionata prin adaugarea de noi intrari (ADD Input) din meniul contextual sau prin metoda clasica de redimensionare a unui obiect.

Fig. Pictograma functiei Build Array

Concatenarea unei matrici si a doua elemente numerice este prezentata in figura 4.124. Succesiunea elementelor in noua matrice respecta ordinea de sus - in jos pentru elementele de intrare.

Fig. Constructia unei matrici prin concatenarea a doua elemente si a unei matrici

Concatenarea a doua matrici este ilustrata in figura 4.125.

Fig. Concatenarea a doua matrici cu optiunea Concatenate Inputs activata (a) si respectiv dezactivata (b)

Matricea rezultata va avea dimensiunea impusa de utilizator prin selectarea din meniul contextual al iesirii a optiunii de activare a concatenarii Concatenate Inputs.

Functia Array Subset returneaza un fragment dintr-o matrice incepand cu elementul nominalizat prin index (intrare a functiei) si compus dintr-un numar de elemente specificat prin intrarea functiei length (fig.4.126).

Fig. Extragerea unui fragment dintr-o matrice

Functia Index Array returneaza elementul matricii specificat prin intrarea functiei (index-ul elementului).

Functia Array Max & Min returneaza valoarea maxima si minima dintr-o matrice analizata. Functia are posibilitatea vizualizarii si a index-ilor care nominalizeaza cele doua valori.

Paleta functiei Array dispune si de alte posibilitati de lucru: descompunerea unei matrici 1D (Split 1D Array), cautarea intr-o matrice 1D (Search 1D Array), initializarea unei matrici constante (Array Constant), conversii, etc.

Polimorfisme

Poliformismul reprezinta capabilitatile functiilor din LabView (de ex. adunare, inmultire, impartire) de a accepta la intrare date cu dimensiuni si reprezentari diferite. Functiile aritmetice care poseda aceste proprietati se numesc functii polimorfice.

Un exemplu clasic pentru aceasta proprietate este poliformismul functiei adunitionale scalar - scalar, scalar - matrice, matrice - matrice de dimensiuni diferite. In figura 4.127 se prezinta exemplul de poliformism pentru adunarea scalar - matrice.

Fig. Poliformismul functiei de adunare: scalar - matrice

In figura 4.128 se exemplifica poliformismul functiei de adunare pentru adunarea a doua matrici de dimensiuni diferite. Dimensiunea matricii rezultate este cea a matricii cu numarul mai mic al elementelor. Elementele noii matrici se obtin prin insumarea clasica a elementelor corespondente, scalar - scalar.

Fig. Poliformismul in adunarea a doua matrici de dimensiuni diferite

Demonstrarea poliformismului functiei de inmultire este ilustrata in figura 4.129. Matricea de iesire are elementele inmultite cu acelasi coeficient 10 (coeficient de scalare).

a)

b)

Fig. Poliformismul functiei de inmultire

Functiile booleane se incadreaza in randul functiilor polimorfice. Se exemplifica proprietatea in figura 4.130 pentru functia AND aplicata unui scalar boolean si unei matrici. Se returneaza o matrice.

Fig. Poliformismul functiei AND

Un rezultat asemanator se obtine pentru functia AND aplicata pentru doua matrici de dimensiuni diferite (fig.4.131).

Fig. Poliformismul functiei AND pentru doua matrici booleane de dimensiuni diferite

Grupuri (Cluster)

Un grup = cluster defineste o structura de date care combina unul sau mai multe tipuri de date intr-unul nou. Este echivalentul tipului structura - struct din limbajul C sau inregistrare - record din Pascal.

Cluster-ul se regaseste atat in structura de controale cat si in structura de functii din LabView.

Localizarea in paleta Controls este ilustrata in figura 4.132.

Fig. Localizarea controlui Cluster

Dupa introducerea variabilei in panoul frontal se va atasa cluster-ului, ca si in cazul tabloului - Array, tipul de date dorit.

In figura 4.133 se prezinta pozitionarea in panoul frontal a variabilei de tip grupare de date cu trei controale: un control de tip sir de caractere (Nume), un control de tip numeric (Virsta) si unul de tip boolean (prezenta). Se prezinta in paralel si diagrama bloc constituita dupa alegerea a trei indicatoare adecvate tipurilor de date specificate.

In faza de editare a IV se pot realiza modificari ale ordinei elementelor in cadrul variabilei. Prin selectarea optiunii de editare - Positioning Tool si clic cu butonul stang al mouse-lui pe conturul variabilei se deschide meniul contextual din care se alege optiunea "Modificarea ordinii in grup" - Cluster Order.. Redimensionarile elementelor din grupa de date se realizeaza pe principiile prezentate anterior.

Fig. Exemplificarea utilizarii cluster-ului compus din controale

Un rol esential al cluster-ului este regasit in cadrul functiilor pentru constructia diagramei bloc. Localizarea in cadrul paletei de functii este prezentata in figura 4.134.

Fig. Functiile Cluster

Principalele functii din subpaleta Cluster sunt (in ordinea pozitionarii in paleta de functii): Unbundle, Bundle, Unbundle by Name, Bundle by Name, Build Cluster Array, Index & Bundle Cluster Array, Cluster Constant etc.

Functia Bundle grupeaza mai multe componente, realizand un grup, sau inlocuieste una sau mai multe componente ale unui grup existent. Pictograma aferenta functiei este prezentata in figura 4.135.

Fig. Pictograma functiei Bundle

Gruparea elementelor se realizeaza in ordinea acestora in cadrul grupului Prima componenta conectata la functia Bundle este componenta cu index-ul 0, urmeaza componenta cu index-ul 1, s.a.m.d. Numarul de intrari poate fi modificat fie prin selectarea Add Input din meniul contextual al intrarii fie utilizand unealta de pozitionare / redimensionare din caseta Tools. In figura 4.136 se exemplifica utilizarea functiei Bundle.

a)

b)

Fig. Panoul frontal (a) si diagrama bloc (b) in utilizarea functiei Bundle

O alta exemplificare a utilitatii functiei Bundle este prezentata in figura 4.137.

Fig. Utilizarea functiei Bundle

Constanta numerica (setata la valoarea 0) defineste punctul de origine real iar prin controlul numeric se impune valoarea de incrementare. Functia Bundle reuneste datele numerice permitand reprezentarea grafica.

In cazul in care functia Bundle este utilizata pentru inlocuirea unor componenteale unui grup deja existent, grupul trebuie conectat la intrarea cluster a functiei (fig.4.138). In cadrul aplicatiei functia bundle permite inlocuirea valorii numerice corespunzatoare controlului Knob si respectiv a controlului numeric 2.

a)

b)

Fig. Utilizarea functiei Bundle in inlocuirea unor componente

Functia Bundle by Name este folosit doar pentru inlocuirea unei componente dintr-un grup existent. Modul de lucru este asemanator cu cel prezentat anterior. Cluster-ul existent se conecteaza la intrarea specificata a functiei (cluster). In ordinea logica a constructiei se introduce controlul care va inlocui o componenta. Componenta de inlocuit se va identifica dupa numele reprezentat prin eticheta asociata. Numarul intrarilor nu este obligatoriu sa fie egal cu cel al componentelor grupului. Adaugarea de noi intrari se poate realiza tot din meniul contextual prin selectare optiunii Add Element. Numarul posibilitatilor de inlocuire se pot vizualiza din meniul contextual al intrarii functiei prin selectarea optiunii Select Item. Asocierea numelui componentei cu intrarea se realizeaza prin selectarea numelui din lista posibilitatilor vizualizate.

a)

b)

Fig. Panoul frontal (a) si diagrama bloc (b) in utilizarea functiei Bundle by Name

Descompunerea grupurilor in componente se bazeaza pe doua functii Unbundle si Unbundle by Name. Utilizarea primei functii este prezentata in figura 4.140. Fiecarui control inclus in cluster-ul construit in panoul frontal i se poate asocia un indicator, conexiunea realizandu-se prin functia Unbundle.

a)

b)

Fig. Panoul frontal (a) si diagrama bloc (b) in utilizarea functiei Unbundle

Controale si indicatoare pentru reprezentari grafice

Introducere

Controalele si indicatoarele pentru reprezentari grafice constituie componente pentru crearea interfetei, din panoul frontal, care permite vizualizarea reprezentarilor grafice.

Din punctul de vedere al modului de realizare, se deosebesc doua variante de reprezentari grafice:

Diagrama ( chart ) - reprezentare grafica a unei informatii care se modifica in timp. Acestea se reprezinta practic in timp real. Pe masura ce noi valori sunt obtinute, ele sunt adaugate la reprezentarea existenta. Punctele de reprezentare sunt pastrate, permitand vizualizarea variatiei in timp a procesului. Diagrama evolutiei temperaturii intr-o perioada de timp este un exemplu clasic.

Graficul (graph) - inseamna o reprezentare a dependentei unei marimi de o alta. Pentru realizarea reprezentarii, valorile sunt colectate intr-un tablou si apoi reprezentate. Reprezentarea grafica x- y este un exemplu clasic al acestei categorii.

LabView 8.2 dispune de mai multe facilitati pentru reprezentarile grafice (fig.4.141):

Fig. Subpaleta pentru reprezentari grafice

a1 - diagrama unda (Waveform Chart);

b1 - grafic unda (Waveform Graph);

c1 - grafic XY (XY Graph);

d1 - grafic XY special (Express XY Graph);

a2 - diagrama intensitate (Intensity Chart);

b2 - grafic intensitate (Intensity Graph);

c2 - grafic unda digitala (Digital Waveform Graph);

d2 - grafic cu semnale multiple (Mixed Signal Graph);

a3 - grafic suprafata 3D (3D Surface Graph);

b3 - grafic parametric 3D (3D Parametric Graph);

c3 - grafic curba 3D (3D Curve Graph).

Elementele principale care intervin in reprezentarea grafica sunt evidentiate in figura 4.142. O serie dintre aceste elemente devin vizibile doar prin selectarea optiunii respective in meniul contextual. Redimensionarea si pozitionarea obiectului in panoul frontal respecta principiul clasic de lucru.

Fig. Elementele reprezentarilor grafice

Diagrama unda

Diagrame unda (waveform charts) reprezinta indicator grafic pentru vizualizarea unuia sau mai multor reprezentari grafice simultan, pentru care se urmareste variatia in timp.

Diagrama unda dispune de un meniu contextual (asemanator cu cele pentru restul controalelor / indicatoarelor) prin intermediul caruia indicatorul poate fi particularizat functie de problema de rezolvat (fig.4.143):

Selectarea elementelor pentru care se doreste a fi vizibile din Visible Items;

Formatarea scalei X si Y prin optiunile X Scale si respectiv Y Scale;

Vizualizarea mai multor grafice pe aceeasi diagrama prin selectarea optiunii Stack Plots. Revenirea la forma initiala se realizeaza prin selectarea optiunii Overlay Plots (fig.4.144);

Actualizarea diagramei prin selectarea optiunilor Advanced / Update Mode:

Diagrama tip panglica (strip chart) - noile puncte se afiseaza in partea dreapta a celor existente, in timp ce punctele vechi sunt retrase spre stanga;

Diagrama tip osciloscop (scope chart) - noile puncte se afiseaza in partea dreapta a celor existente. In momentul in care reprezentarea atinge marginea din dreapta a zonei vizibile, reprezentarea este stearsa si reinceputa din marginea din stanga;

Diagrama tip baleiere (sweep chart) - noile puncte se afiseaza in partea dreapta a celor existente. La atingerea marginii din dreapta a zonei vizibile, noile puncte sunt afisate incepand din partea stanga, peste cele vechi. O linie verticala baleiaza zona de vizualizare delimitand zona punctelor noi si a celor vechi (din dreapta).

Stergerea ferestrei de afisare prin selectarea optiunii Data Operations / Clear Chart;

Selectarea modului de reprezentare a curbei (puncte sau linie, culoare, grosime,..) din legenda Plot (fig.4.143).

In cazul unei singure reprezentari grafice in diagrama unda, structurile de date posibile sunt:

Scalar numeric - se transmite valoarea unui singur punct (fig.4.143)

Fig. Transmiterea unei singure valori in reprezentarea grafica prin diagrama unda

Tablou 1D cu elemente tip scalar numerice - fiecare element al tabloului defineste un punct al reprezentarii si se transmit simultan valorile mai multor puncte (fig.4.144).

Fig. Structura 1D in reprezentarea grafica prin diagrama unda

Un exemplu edificator pentru reprezentarea grafica unei diagrame unda este ilustrat in figura 4.143. Diagrama bloc a fost construita prin simpla conectare a generatorului de numar aleator la indicatorul grafic.

a)

b)

Fig. Panoul frontal (a) si diagrama bloc (b) la reprezentarea unei diagrame unda

Pentru reprezentarea mai multor forme de unda in cadrul aceleeasi diagrame se considera 3 structuri de date permise pentru retinerea punctelor necesare reprezentarii:

Gruparea de date. In acest scop se utilizeaza gruparea de date pe baza functiaCluster / Bundle. Pentru fiecare element conectat la functia Bundle se retine la un moment dat o singura valoare. Toate cele n valori, corespunzatoare celor n elemente de intrare ale functiei, se transmit simultan (fig.4.146). Cele trei forme de unda sunt: numarul aleator (0-1), rezultatul inmultirii numar aleator x 10, temperatura (temp ca si instrument virtual LabView8.2 / Activity / Digital Thermometer.vi). Reprezentarea celor trei curbe este in ordinea conectarii la functia Bundle iar culorile sunt in aceeasi succesiune din legenda Plot). Pentru reprezentarea multipla s-a selectat optiunea Stack Plots. Pentru o vizualizare convenabila a fost introdus functia Time / Millisecond Multiple.

Tablou 1D cu elemente tip grupare de date (pe baza de elemente de tip scalar numeric). Pentru fiecare grupare de date (corespunzatoare unei reprezentari) sunt transmise punctele de reprezentat. Acestea sunt colectate intr-un tablou (array) cu cluster avand dimensiunea convenabila. O reprezentare sugestiva pentru acest caz este ilustrata in figura 4.147.

a)

b)

Fig. Panoul frontal (a) si diagrama bloc (b) pentru reprezentarea mai multor forme de unda

a)

b)

Fig. Varianta de reprezentare grafica a formelor de unda multiple

Tablou 2D - Datele noi de reprezentare se transfera simultan la noua actualizare si se cumuleaza intr-o matrice de scalari numerici. Fiecare linie coincide cu punctele pentru o forma de unda de reprezentat. Un exemplu edificator este prezentat in figura 4.148. A fost introdusa functia de transpunere a matricii de reprezentat: Functions / Array / Transpose 2D Array.

a)

b)

Fig. Reprezentarea mai multor forme de unda

Grafice tip unda

Graficul de tip unda reprezinta o posibilitate de vizualizare uniforma a unor masuratori cu esantionare. Este posibila vizualizarea unui singur grafic sau a mai multor grafice. In primul caz graficul unda ploteaza o singura functie cu puncte uniform distribuite pe axa x. Sunt posibile doua variante:

Metoda 1 - Se furnizeaza indicatorului grafic de tip unda cu un singur parametru, tablou 1D. Se presupune implicit ca plotarea incepe din origine, x = 0 si incrementarea este unitara, x = 1. Un exemplu edificator este prezentat in figura 4.149. Pentru exemplificarea celor specificate anterior si a corespondentei valorilor s-a preferat o vizualizare dubla (si numeric). In plus s-a apelat la o reprezentare prin puncte conectate prin linie continua. In acest exemplu de generare a tabloului 1D, valoarea maxima a scalei pe axa X corespunde unei relatii simple unde N este dimensiunea tabloului.

a)

b)

Fig. Panoul frontal (a) si diagrama bloc la reprezentarea unui grafic unda

Metoda 2 - Reprezentarea se bazeaza pe realizarea unui grup de date compus din valoarea initiala a abscisei , pasul de incrementare al axei , tabloul 1D. Formarea grupului de date se bazeaza pe functia Bundle. In aplicatiile de achizitie a datelor tabloul 1D se obtine prin "citirea" unui canal de achizitie (realizat hard). Un exemplu edificator pentru metoda de lucru este prezentat in figura 4.150. Generarea tabloului 1D se realizeaza in principiul clasic al unui ciclu FOR in care a fost inclus un generator de numar aleator (0-1). Valoarea maxima a scalei pe axa X corespunde in acest caz relatiei .

Fig. Diagrama bloc in reprezentarea grafica prin metoda grupului

Reprezentarea mai multor grafice unda pe baza unui singur indicator este posibila prin mai multe metode:

Se transmit spre a fi reprezentate M puncte pentru fiecare din cele N grafice. Structura formata este un tablou 2D unde o linie este compusa din punctele de reprezentat. Reprezentarea este uniforma cu originea abscisei in zero si incrementare unitara. Numarul de puncte este acelasi pentu fiecare reprezentare. Un exemplu edificator pentru reprezentarea a doua grafice unda este ilustrat in figura figura 4.151. Formarea tabloului 2D este posibila fie prin utilizarea functiei Functions/Programming/Array/Build Array fie prin utilizarea functiei ./ Cluster / Build Cluster Array (reprezentat in fig.4.151).

Fig. Diagrama bloc pentru reprezentare multipla a doua grafice unda

Punctele de reprezentat se retin intr-un tablou 1D cu elemente tip grup de date. Cele N grupuri de date vor fi incluse intr-un tablou 2D prin utilizarea functiei Build Array. Reprezentarea este uniforma cu incrementare unitara, numarul de puncte poate fi diferit pe fiecare dintre cele N reprezentari (fig.4.152).

Fig. Reprezentarea multipla a unor grafice unda

Pe principiul anterior, se formeaza un grup de date compus din matricea 2D continand punctele de reprezentat, originea pe axa X si pasul de incrementare. Crearea grupului de date are la baza functia Bundle (fig.4.153).

Fig. Reprezentarea graficelor unda pe baza de grup de date

O reprezentare multipla se poate baza pe un acelasi grup de date ca in cazul anterior realizandu-se o reprezentare cu incrementare impusa. Tabloul 2D aplicat pe intrarea functiei Bundle poate fi o matrice din clustere (asemanator cu figura 4.151) (fig.4.154) sau o matrice 2D (fig.4.155) (cu elemente de tip scalar numeric corespunzator punctelor de reprezentat).

Fig. Varianta de reprezentare cu incrementare impusa

Fig. O alta varianta de reprezentare cu incrementare impusa unica

Reprezentarea multipla se poate realiza cu origine pe abscisa si incrementare diferita pentru fiecare forma de unda reprezentata. Punctele de reprezentat pentru o forma de unda sunt incluse intr-un grup de date prin utilizarea functiei Bundle. Cele N grupuri de date sunt reunite intr-o matrice prin functia Build Array care se aplica la intrarea indicatorului grafic. Un exemplu edificator este reprezentat in figura 4.156. Doar pentru intelegerea modului de reprezentare a datelor in constructia diagramei bloc au fost introduce indicatoare suplimentare prin care se pot vizualiza grupul de date dupa reunirea prin functia Bundle si respectiv a matricii aplicate pe indicatorul grafic. Se poate sesiza usor originea si incrementarea diferita pentru cele doua grafice.

a)

b)

Fig. Reprezentare grafica a formelor de unda cu incrementari diferite

Grafice XY

Graficul XY se gaseste in subpaleta Grapf a paletei de controale. Graficul XY este un grafic in coordonate carteziene. Pentru reprezentare este necesara specificarea coordonatelor punctelor de reprezentat (x, y). In acelasi timp prin aceasta facilitate pot fi reprezentate functii circulare sau elipsoidale.

Realizarea unei singure reprezentari grafice se bazeaza pe doua metode:

Metoda 1 - Pentru reprezentare se vor furniza initial doua tablouri 1D: 1 tablou 1D care cuprinde valorile absciselor iar cel de-al doilea, valorile ordonatelor. Cele doua tablouri sunt reunite intr-un grup de date prin utilizarea functiei Bundle (fig.4.157).

a)

b)

Fig. Panoul frontal (a) si diagrama bloc intr-o reprezentare grafica XY

Metoda 2 - Coordonatele unui punct de reprezentat se, pot reuni intr-un grup de date. Cele N perechi de grupuri de date formeaza un tablou 1D care se transfera indicatorului grafic (fig.4.158).

Fig. Reprezentare XY prin tablou 1D

Reprezentarea grafica XY permite afisarea simultana a mai multor reprezentari. Metodele posibile iau in considerare:

Metoda 1 - Fiecare reprezentare se constituie intr-un grup de date compus din tabloul 1D corespunzator absciselor si tabloului 1D al ordonatelor. Cele N grupri de date sunt reunite intr-o matrice de clustere (pe baza functiei Build Array) care se aplica indicatorului grafic (fig.4.159).

Fig. Reprezentari XY multiple

Metoda 2 - Perechea de valori (x,y) a unei reprezentari se constituie intr-un grup de date. Fiecare grup de date ale unei reprezentari se reuneste intr-un tablou 1D. Cele N tablouri 1D se reunesc intr-o matrice de clustere prin aplicarea functiei Build Cluster Array (4.160).

Fig. Reprezentarea multipla XY prin matrice de clustere

Reprezentarile grafice XY beneficiaza in versiunile LabView7 si LabView8 si de facilitatea Express XY Graph. Partea de vizualizare (display) este asemanatoare indicatorului clasic XY Graph in timp ce pictograma este modificata (fig.4.161). Prin utilizarea acestui tip de indicator se modifica modul de transfer a datelor reprezentate.

Fig. Pictograma indicatorului Express XY Graph

In figura 4.162 se prezinta diagrama bloc pentru modul de reprezentare grafica a unei singure functii, un cerc de diametru unitar. In constructia diagramei s-au utilizat:

Functia trigonometrica dubla sine & cosine.vi localizata in paleta de functii la Mathematics/Elementary &Special Functions/Trigonometric Functions;

Functia de conversie dinamica a datelor Convert to Dynamic Data localizata in paleta de functii la Express/Signal Manipulation/To DDT.

Fig. Reprezentarea grafica a unui cerc

Pentru reprezentarea unor functii multiple se apeleaza in mod suplimentar la functia de reuniune a mai multor semnale intr-unul singur Merge Signals localizat in paleta de functii la Express/Signal Manipulation. Diagrama bloc pentru reprezentarea grafica a cercului unitar si a functiei exponentiale este prezentata in figura 4.163.

Fig. Reprezentarea multimpla a graficelor XY

Functii numerice

Functiile numerice sunt localizate in cadrul casetei de functii Programming / Numeric (fig.4.164). Caseta include operatiile uzuale (adunare, scadere, inmultire, impartire, ridicare la patrat, radical), conversii, constante numerice, operatii cu numere complexe, valori pentru constanta π, e etc.

Fig. Functii numerice

Daca functia de adunare - Add, functia de scadere - Subtract,.se aplica pentru doua valori numerice (x si y) caseta de functii numerice dispune si de functia Compound Arithmetic pentru operatii multiple din aceeasi categorie. Operatiile disponibile (selectabile din meniul derulant atasat) pentru Compound Arithmetic sunt numerice - adunare (Add), inmultire (multiply) sau logice - AND, OR, XOR. In figura 4.165 se prezinta utilizarea functiei Add multipla.

Fig. Operatie de adunare multipla cu Compound Arithmetic

Caseta de functii numerice include si operatii pe matrici numerice: adunarea si inmultirea elementelor. In figura 4.166 se prezinta modul de aplicare a functiei Add Array Elements.

In varianta LabView 8, subpaleta Express/Arithmetic &Comparison contine un pachet mai larg de functii matematice (functii trigonometrice, functii exponentiale, functii pentru operatii in domeniul timp). In figura 4.167 se prezinta constructia unei diagrame bloc pentru operatia de derivare in raport cu timpul. Semnalul de intrare este un semnal sinusoidal (Express /Signal Analysis / Simulate Signal ). Pentru operatia matematica in domeniul timp s-a selectat Express/Arithmetic&Comparison/Time Domain. S-a optat in final din domeniul timp pentru functia de derivare Derivative(dx/dt).

Fig. Operatia de adunare a elementelor unei matrice

Fig. Operatie de derivare in domeniul timp

Functii de comparare

Functiile de comparare sunt localizate in caseta de functii Programming / Comparison. Sunt incluse functiile de comparare pentru: egalitate ? (Equal ?), inegal ? (Not Equal ?), mai mare ? (Greater ?), mai mic ? (Less ?) etc. Aceste functii compara doua valori numerice (x si y) si returneaza la iesire valoarea TRUE sau FALSE dependent de functia in cauza.

Utilizarea unei functii de comparare cu o structura de tip Case este prezentata in figura 4.168. Functia de compare Equal ? compara doua valori numerice (x si constanta 4) si returneaza TRUE daca si FALSE in restul cazurilor. Dependent de valoarea logica rezultata se va executa programul corespunzator variabilei de control logice.

Fig. Functia de comparare si structura Case

Pictograma functiei de comparare Select este prezentata in figura 4.169. Functia returneaza valoarea conectata la intrarea t sau f dependent de valoarea care este conectata la s. Daca s este FALSE atunci functia va returna valoarea conectata la f. Exemplificarea utilizarii functiei este prezentata in figura 4.170. incadrarea unei piese in campul de toleranta precizat este convertita de un senzor intr-o valoare logica TRUE sau FALSE care se aplica la intrarea s a functiei de comparare. Rezultatul poate fi vizualizat pe panoul frontal al instrumentului virtual.

Fig. Functia de selectare

Fig. Functia Select si raspunsul pentru un s de valoare FALSE

Un numar de functii de comparare lucreaza cu variabile sir. Pentru detalii suplimentare referitor la acestea se poate accesa Help-ul functiei respective.

Functii pentru lucru cu fisire I/O

Operatiile cu fisiere de intrare / iesire (I/O) au ca scop principal stocarea datelor pe un suport si preluarea datelor dintr-un fisier. In figura 4.171 si 4.172 se exemplifica utilizarea functiei de scriere a datelor intr-un fisier (Write to measurement file).

a)

b)

Fig. Utilizarea functiei de scriere a fisierului de date din masuratoare

Se remarca (fig.4.172) constructia fisierului de date cu precizarile referitoare la data simularii, numarul de esantioane etc.

a)

b)

Fig. Panoul frontal, diagrama bloc si fisierul salvat in aplicatia de simulare a unui semnal

Exemplificarea citirii unui fisier de masuratori test.lvm si vizaualizarea informatiei acetuia este prezentata in figura 4.173. Selectarea indicatorului pentru vizualizarea semnalului s-a realizat prin accesarea meniului derulant / Create / Indicator.

a)

b)

Fig. Exemplificarea utilizarii functiei Read From Measurement File

Achizitia datelor dintr-un experiment

Achizitia de date in urma unui experiment si salvarea datelor respective presupune in primul rand existenta componentelor hardware necesare. In figura 4.174 este prezentata structura standului utilizat pentru achizitia informatiilor referitoare la cinematica unui pendul (1 - PC; 2 - traductor rezistiv de deplasare; 3 - pendul fizic; 4 - sursa de alimentare de c.c.).


Fig. Stand experimental pentru achizitia de date asistata de calculator

Constructia instrumentului virtual pentru achizitia de date presupune introducerea in diagrama bloc a subVI-lor specifice componentelor hardware. In figura 4.175 se prezinta secventa 1 din diagrama bloc in care au fost incluse subVI-le pentru configurarea placii de achizitie ADLink 8216 (8216 Config) si configurarea conexiunii cu PC-ul (ADLink Config).

a)

b)

Fig. Placa de achizitie ADLink 8216 intr-un instrument virtual cu LabView

Panoul frontal al instrumentului virtual construit este prezentat in figura 4.176.

Fig. Panoul frontal al instrumentului virtual

Prin deschiderea casetei 8216 Config (fig.4.175b) se poate realiza configurarea placii:

Base Address - este adresa portului I / O a placii;

A/D Channel Config - configureaza modul intrare A/D. Valoarea "1" selectata desemneaza modalitatea "single-ended" iar valoarea "2" desemneaza modalitatea "diferentiala". Acest aspect trebuie luat in considerare in momentul conectarii la placa de baza;

IRQ - consemneaza transferul de date sau stop DMA;

DMA - este utilizat pentru transferul DMA;

Error In si Error Out - consemneaza printr-un cod specific existenta unor erori;

Card Number - intervalul de valori 0 - 16 indica initializarea placii. Valoarea terminalului de iesire este utilizata de alte subVI-uri - ACLS -LabView.

Diagrama noului VI se complecteaza cu subVI - uri necesare din setul de care se dispune: AI Cont Config, AI Cont Read Multiple Channels, AI Cont Read Single Channel, AI Multiple Scale, AI Read Channel Voltage, AI Read Multiple Channels, AI Read Single Channel etc. oferite de ADLink pentru lucrul cu LabView. Mediul de lucru LabView dispune de biblioteci de drivere pentru astfel de componente de la o serie de firme constructoare de echipament de achizitie. In acelasi timp diagrama bloc a fost construita pe baza instrumentelor, controalelor si functiilor cu caracter general, disponibile in LabView.

In figura 4.176 se prezinta un fragment din secventa 2 a diagramei bloc pentru cazul prezentat in care s-a introdus subVI-ul necesar ADLink Conti. AI pentru achizitia continua a unui semnal analogic.

Fig. Un nou subVI 8216 in diagrama bloc

Concluzii

Spatiul relativ restrans, care a putut fi oferit pentru prezentarea softwere-lui LabVIEW, a condus la prezentarea elementelor strict necesare pentru definirea instrumentatiei virtuale si a modului de constructie a acestuia.

Alte functii ofera posibilitatea prelucrarii avansate a semnalelor achizitionate:

Functii pentru lucrul cu forme de unda (Functions/Programming / Waveform): constructia unei forme de unda (Build Waveform), .., conversie A / D (Analog to Digital), conversie D / A (Digital to Analog), , lucru cu fisiere I / O etc.;

Functii pentru simplificarea realizarii raportului (Functions/Programming Report generation);

Functii pentru controlul unei aplicatii (Functions/Programming/Application Control);

Functii pentru lucru cu instrumente si interfete (Functions / Instrument I/O): drivere pentru instrumente (Instr. Drivers), interfete GPIB, Serial etc.;

Functii pentru calculul matematic (Functions / Mathematics): algebra lineara cu matrici si determinanti (Linear Algebra), calcul statistic (Probability & Statistics), valori medii (Mean), deviatie standard si varianta (StdDeviation and Variance), histograme;

Manipularea semnalelor (Functions /Express/ Signal Manipulation): multiplexarea semnalelor (Merge Signals), , selectare semnal (Select Signals), releu (Relay), extragerea unor caracteristici (Extract Portion), ..etc.;

Functii pentru procesarea semnalelor (Functions/Signal processing).

Exemplele introduse in continutul capitolului permit proiectantului de instrumentatie virtuala de verifica modalitatile de lucru dar si de a descoperi si dezvolta alte variante de instrumente virtuale.

Prin domeniul abordat si capabilitatile deosebite pentru modelare - simulare si achizitie de date programul LabVIEW reprezinta o unealta eficienta pentru un viitor specialist in domeniul mecatronic. Acesta are posibilitatea de a verifica in mod rapid diferenta intre un model matematic teoretic si cel real dezvoltat prin identificarea parametrilor.

Instrumentatie virtuala cu VEE-Agilent

Introducere

VEE Agilent este un mediu de programare grafica pentru aplicatii de masurari si testari precum si constructia interfetelor operator.

VEE ofera multiple avantaje in dezvoltarea testelor: productivitate deosebita si usurinta in exploatare, gama larga pentru instrumentatie I / O pentru controlul diverselor compenente ale sistemelor de achizitie: interfete seriale, GPIB, LAN, placi plug-in, instrumente de masurare etc. In plus VEE permite lucru si cu alte limbaje uzuale C/C++, Visual Basic, Pascal si Fortran [], [].

Elemente generale privind capabilitatea sistemului

Lansarea programului respecta principiile clasice de lucru:

din icon-ul specific programului;

din Start / All Programs / Agilent VEE Pro 7.5 / VEE Pro7.5.

Interfata utilizator a programului cuprinde (fig.4):

bara de meniu orizontala 1 - care ofera fie facilitatile clasice (File, Edit, View, Help,..) fie facilitatile specifice aplicatiei (Debug, Flow, Device, Diplay, etc..);

bara de meniu orizontala 2 - care ofera de asemenea facilitati de lucru sub Windows (Save, Print,) si facilitati ale aplicatiei (Step Into, Step Over,, Show Execution Flow, Instrument Manager,);

caseta 3 - pentru explorarea programului (Program Explorer) care permite vizualizarea ierarhica a acestuia;

caseta 4 - Properties - permite vizualizarea obiectelor incluse in program precum si setarea unor parametri ai acestuia;

caseta 5 - destinata dezvoltarii unei aplicatii.

Fig. Interfata utilizator a programului VEE

Constructia instrumentului virtual se bazeaza pe diverse obiecte cu functii specifice pentru control, vizualizare, prescrire de date etc. Un obiect dorit se alege prin deschiderea meniului derulant al clasei de obiecte din bara de meniu orizontala si pozitionarea lui in zona de lucru. Clasele de obiecte se refera la:

fluxul de date (Flow) - definirea fluxului de date, conditionari, lansare, etc. : Start, IF/Then/Else/, Conditional, Jonction, Do, Gate,;

procedee / mijloace (Device) - formule, MatlabScript, User Object, .., Shift Register;

sistem (System) - ofera posibilitatea lucrului cu directoare, fisiere, cai, utilizatori, etc.;

intrare / iesire (I / O) - ofera posibilitatile de interfatare, de gestionare a instrumentelor, etc.;

informatii / date - (Data) - selectie control, caseta dialog, constante: Selection control, Dialog Box, Constant, ...;

indicatoare (Display) - permit vizualizarea datelor / informatiilor alfanumerice, grafice: AlphaNumeric, Indicator (Meter, Tank, Color Alarm,..), XY Trace, ..;

Pentru fiecare obiect selectat si inclus in pagina de lucru pot fi vizualitate proprietatile acestuia si particularizate conform utilizatorului (culoare, nume,..)(fig).

Fig. Obiect, icon si proprietati

Fiecarui obiect ii este atasata un meniu derulant care ofera posibilitatea accesarii unor facilitati cu aspecte generale si pentru particularizarea parametrilor de lucru ai obiectului (fig.). Fiecare din etichetele Xname, Yname si Trace1 "ascund" buton de comanda pentru deschiderea casetelor de dialog aferente (fig.4.b).

In mod asemanator cu lucrul in LabView, obiectele introduse in pagina de lucru se conecteaza prin linii care modeleaza caile de transfer a informatiilor.

Fig. Inregistratorul X-Y si meniul derulant (a); caseta de dialog (b)

In figura se prezinta un instrument virtual pentru vizualizarea rezultatului unui calcul in corespondenta cu o expresie de calcul. S-au utilizat: obiectul Int32 pentru precizarea valorii variabilei A, obiectul Formula in care s-a tastat expresia de calculat si obiectul pentru vizualizarea rezultatului numeric AlphaNumeric.

Fig. Instrument virtual pentru calcul numeric

In figura .se prezinta instrumentul virtual pentru simularea unui instrument de masurare numeric. Instrumentul virtual are in componenta panoul frontal compus din butoane, display, indicatoare (asemanator cu panoul frontal din LabView). Structura interna a instrumentului virtual este disponibila in caseta de vizualizare Program Explorer (fig.).

Fig. Instrument virtual cu panou frontal

In Program Explorer este posibila si vizualizarea conexiunilor interne ale instrumentului virtual. Acest lucru corespunde cu diagrama bloc din cazul VI-lor construite in mediul LabVIEW. Principiul de constructie pastreaza si modul de utilizare a etichetei cu numele obiectlui.

a)

b)

Fig. Structura instrumentului virtual si conexiunile interne pentru nivelul Log Data

Concluzii

VEE este unul din programele cu licenta aflate in dotarea Laboratorului de Senzori si Actuatoare a Departamentului de Mecatronica (alaturi de LabView 8.2, ControlDesk, Matlab 7, IMAQ).

Prin facilitatile oferite, VEE este extrem de util in instruirea specialistilor din domeniu in instrumentatia virtuala si achizitie de date. In cadrul laboratorului exista o serie de instrumente Agilent astfel ca este posibila analiza modului de configurare a acestora in mediul VEE si LabView.

In plus, program VEE permite realizarea unei paralele cu celelalte medii disponibile in cadrul laboratorului si insusirea logica a aspectelor comune.

Instrumentatie virtuala cu dSPACE

Introducre

SPACE Simulator ofera o posibilitate completa de control a unui experiment. ControlDesk se constituie intr-o interfata cu utilizari multiple (interfata utilizator, generarea instrumentelor virtuale, preconfigurarea layout-uri pentru aplicatii HIL etc.).

Componenta software oferita de firma dSPACE este insotita de ofertele generoase hardware astfel incat sa se poata atinge scopul urmarit: achizitie si control.

Componenta software a fost proiectata initial pentru lucru in asociere cu mediul Matlab / Simulink. In ultima perioada alte programe puternice (LabView, Dymola, 20SIM) pentru modelare / simulare au dezvoltat facilitati pentru accesarea componentelor dSPACE

Instrumentatia virtuala in ControlDesk

Lansarea programului ControlDesk (pe principiile clasice de lucru sub Windows) conduce la deschiderea interfetei utilizator prezentata in figura 4Se remarca 4 zone:

1 - zona de unealta (Tool Window). Este posibila accesarea a trei controale atasate acestei zone: Log Viewer (vizualizare mesaje, erori, legaturi); Interpretor (permite utilizarea mediului de programare Python pentru ControlDesk); File Selector (permite selectarea fisierului dorit)

Fig. 1. Interfata utilizator

2- zona navigator - ofera posibilitatea selectarii a trei domenii: parte de experiment (Experiment); instrumentatie (Instrumentation) care deschide layout-ul curent de lucru; platforma (Platforma) care permite selectarea platformei de lucru (Simulink, sistemul local).

3 - zona layout;

4 - zona de selectare a instrumentelor de lucru. Avand in vedere scopul propus in acest subcapitol vom aborda doar doua categorii dintre instrumentatia disponibila (fig.4): instrumentele virtuale (Virtual Instruments) si instrumentele pentru achizitia de date (Data Acquitition)

Fig. Caseta cu instrumentele disponibile in ControlDesk

Constructia interfetei grafice pentru utilizator presupune selectarea unei noi pagini de lucru: File >New > Layout. In pasul urmator (daca nu este inca vizibil) se valideaza vizualizarea selectorului de instrumente: View > Controlbars > Instrument Selector.

Pe principiul clasic se selecteaza din caseta instrumentelor (cu butonul stang al mouse-lui) instrumentul dorit si se dimensioneaza la valoarea dorita in pagina de lucru. Icon-ul rezultat contine aspectul grafic care il caracterizeaza si o zona de eticheta pentru inscrierea numelui (fig.4). Un clic cu butonul drept al mouse-lui in zona iconu-lui deschide meniul derulant din care se pot selecta facilitatile dorite.

Fig. Instrument si meniul derulant

Selectarea optiunii Properties permite deschiderea casetei de dialog cu o multitudine de facilitati (fig.4)

Fig. Instrument si caseta de proprietati

Cand se genereaza unn layout asociat unui experiment orice variabila din simulink se poate lega modelului creat. La constructia modelului Simulink sunt generate doua tipuri de fisiere: de descriere a variabilei - Variable Description File (*.trc) si fisier de desciere a sistemului - System Description File (*.sdf). Selectarea optiunii Highlight Variables din meniul derulant al instrrumentului permite vizualizarea grafului variabilelor si lista acestora (fig.4).

Fig. Vizualizarea variabilelor

Rezultatele experimentului se pot salva pe un suport sau se pot vizualiza grafic prin asocierea unui instrument grafic de plotare la instrumentul virtual creat.

Pentru configurarea programului ControlDesk refritor la stocarea informatiei din experiment se selecteaza caseta Capture Settings din Data Acquisition. Aceasta caseta permite selectarea variabilelor care se vor prelua, regimul de lucru. Pe langa instrumentele numerice introduse in panoul instrumentului virtual se poate selecta si componenta grafica Data Acquisition / PlotterArray. La introducerea in pagina de lucru a acestui instrument, vom avea doar un cadru gol. Deschiderea meniului derulant si apoi a optiunii Properties va conduce la deschiderea casetei de dialog asociata acestui instrument (fig.4). Este posibila astfel particularizarea zonei de plotare deupa dorinta utilizatorului.

Fig. Instrumentul de plotare si caseta de dialog asociata

In final se obtine panoul corespunzator instrumentului virtual asociat experiemntului vizat (fig.4).

Fig. Instrument virtual creat in ControlDesk /dSPACE

Concluzii

Constructia instrumentului virtual in ControlDesk/dSPACE are aspecte asemanatoare cu LabView dar si diferente de abordare. Important de retinut este disponibilitatea acestui softwere pentru controlul sistemelor pornind de la achizitia realizata si modelul sistemului construit in Matlab/Simulink.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 4966
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved