+ All Categories
Home > Documents > Curs Cap4 Princiii Labview

Curs Cap4 Princiii Labview

Date post: 06-Aug-2015
Category:
Upload: costy-mania
View: 89 times
Download: 0 times
Share this document with a friend
60
CAPITOLUL IV NOŢIUNI DE BAZĂ ALE LIMBAJULUI GRAFIC LABVIEW Denumirea limbajului grafic „LABVIEW” provine dintr-o prescurtare din limba engleză: „Laboratory Virtual Instrument Engineering Workbench”. Acest limbaj grafic este un mijloc de programare destinat controlului, analizei şi afişării datelor; utilizarea acestui limbaj s-a remarcat în special în cazul instrumentaţiei de măsurare bazată pe tehnica de calcul. Programarea unui sistem de măsurare cu ajutorul calculatorului intr-un limbaj clasic (C, Pascal, Ada etc) consumă foarte mult timp. Interfeţele acestor limbaje clasice sunt de multe ori neclare şi greu de înţeles. Prin utilizarea limbajului grafic LabVIEW, rapiditatea programării creşte foarte mult datorită introducerii unei interfeţe grafice mai intuitive. LabVIEW este unul dintre primele limbaje de programare grafică utilizate în aplicaţii de achiziţii de date cu tehnică de calcul. Cu ajutorul plăcilor de achiziţie de date, fluxul de date numerice sau analogice provenite de la diverse traductoare poate fi prelucrat sau analizat. Prelucrarea datelor numerice sau analogice prin intermediul limbajului de programare, permite crearea sau simularea unor aparate de măsură şi control (instrumente virtuale). Principalul avantaj al unei instrumentaţii de măsurare bazată pe tehnica de calcul (instrumentaţie virtuală) faţă de un instrument clasic de măsurare constă în faptul că instrumentaţia virtuală poate fi uşor transformată prin programare. Instrumentele virtuale create prin programare pot fi simple aparate de măsură sau diferite dispozitive care permit controlul unor instalaţii de automatizare. Interfaţa unui instrument virtual conţine dispozitive şi aparate de măsură şi control realizate într-o formă grafică asemănătoare aparatelor şi dispozitivelor reale. 66
Transcript
Page 1: Curs Cap4 Princiii Labview

CAPITOLUL IVNOŢIUNI DE BAZĂ ALE LIMBAJULUI GRAFIC

LABVIEW

Denumirea limbajului grafic „LABVIEW” provine dintr-o prescurtare din limba engleză: „Laboratory Virtual Instrument Engineering Workbench”. Acest limbaj grafic este un mijloc de programare destinat controlului, analizei şi afişării datelor; utilizarea acestui limbaj s-a remarcat în special în cazul instrumentaţiei de măsurare bazată pe tehnica de calcul.

Programarea unui sistem de măsurare cu ajutorul calculatorului intr-un limbaj clasic (C, Pascal, Ada etc) consumă foarte mult timp. Interfeţele acestor limbaje clasice sunt de multe ori neclare şi greu de înţeles.

Prin utilizarea limbajului grafic LabVIEW, rapiditatea programării creşte foarte mult datorită introducerii unei interfeţe grafice mai intuitive.

LabVIEW este unul dintre primele limbaje de programare grafică utilizate în aplicaţii de achiziţii de date cu tehnică de calcul.

Cu ajutorul plăcilor de achiziţie de date, fluxul de date numerice sau analogice provenite de la diverse traductoare poate fi prelucrat sau analizat. Prelucrarea datelor numerice sau analogice prin intermediul limbajului de programare, permite crearea sau simularea unor aparate de măsură şi control (instrumente virtuale).

Principalul avantaj al unei instrumentaţii de măsurare bazată pe tehnica de calcul (instrumentaţie virtuală) faţă de un instrument clasic de măsurare constă în faptul că instrumentaţia virtuală poate fi uşor transformată prin programare.

Instrumentele virtuale create prin programare pot fi simple aparate de măsură sau diferite dispozitive care permit controlul unor instalaţii de automatizare.

Interfaţa unui instrument virtual conţine dispozitive şi aparate de măsură şi control realizate într-o formă grafică asemănătoare aparatelor şi dispozitivelor reale.

4.1.Principii de programare în LABVIEW

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

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

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

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

66

Page 2: Curs Cap4 Princiii Labview

Fiecare din cele două componente este disponibilă simultan la realizarea şi rularea unui program în LABVIEW; programul fiind conceput să lucreze sub sistemul de operare WINDOWS trecerea de la o fereastră la alta se realizează cu ajutorul „mouse-ului”. Atunci când se face salvarea programului ambele componente sunt salvate într-un fişier cu extensia „vi”; apelarea unui fişier cu extensia vi va determina deschiderea ferestrei panel, pentru prima vizualizarea a ferestrei blocului diagramă fiind necesară selectarea opţiunii „show diagram” din meniul „windows” din bara de meniuri a ferestrei panoului cu instrumente.

4.2. Fereastra panou (panel)

Un exemplu de fereastră panou este prezentată în figura 4.1.

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

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

4.2.1. Bara de comenzi

Ne vom referi în continuare la bara de comenzi care prezintă comenzi specifice lucrului sub LABVIEW. Această bară este poziţionată deasupra zonei de lucru şi conţine următoarele butoane:

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

Buton de rulare continuă a programului

Buton de oprire care devine activ numai după ce a fost activat unul dintre cele două butoane anterioare

67

Fig 4.1 Exemplu de fereastră Panel

Page 3: Curs Cap4 Princiii Labview

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

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

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

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

4.2.2. Fereastra de control

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

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

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

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

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

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

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

- - intrare numerică de tip umplere vertical;

- - intrare numerică de tip umplere orizontal;

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

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

- - intrare numerică de tip buton

- - intrare numerică de tip scală

68

Fig. 4.2 Fereastra de control (Control Palette)

Page 4: Curs Cap4 Princiii Labview

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

- - ieşire numerică de tip rezervor;

- - ieşire numerică de tip termometru;

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

- - ieşire numerică de tip manometru;

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

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

- - butoane de comandă;

- - comutatoare;

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

- buton cu LED;- - buton de dialog;- - buton de anulare;- - cutii de control;

- - LED-uri şi lămpi de semnalizare;

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

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

Elementele de intrare ieşire specifice controlului variabilelor de tip şir accesibile din fereastra de control sunt activate atunci când mouse-ul este poziţionat pe simbolul “String and table”:

Se pot selecta următoarele opţiuni:- - element de intrare (control) de tip şir;- - element de ieşire (indicator) de tip şir;- - constantă de tip şir;

În etapa construirii panoului frontal, se introduce o valoare pentru un control/indicator şir de caractere prin unealta de etichetare sau de operare; valoarea actualizată este asociată componentei în urma apăsării butonului Enter afişat în bara orizontală cu meniuri sau a tastei <Enter> din partea dreaptă a tastaturii (zona tastelor numerice). Dacă se apasă tasta <Enter> atunci se va forţa trecerea la un rând nou;

69

Page 5: Curs Cap4 Princiii Labview

valoarea (textul) aflat într-o componenta şir de caractere se poate întinde pe mai multe linii (lăţimea cadrului). Când se editează conţinutul componentei şi cursorul ajunge în dreptul limitei dreapta a spaţiului de editare a controlului/indicatorului, se trece automat la o linie nouă; la un moment dat este vizibilă o singură linie alfanumerică.

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

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

Ca structură de date, un tabel este un tablou bidimensional (matrice), cu elemente (celule) şir de caractere. Elementele sunt grupate pe linii, putând exista mai multe linii. O anumită celulă a tabelului se va găsi la intersecţia dintre linia şi coloana corespunzătoare.Un tabel poate fi control (permite actualizarea datelor conţinute în celule) sau indicator (afişarea valorilor, nu permite actualizarea datelor).

Pentru o componenta de interfaţa tabel, se permite accesul prin intermediul meniului contextual, asociat la eticheta proprie, afişarea indexului liniei şi coloanei, afişarea barei verticală/orizontală de derulare, afişarea titlului pentru fiecare linie (Row Headers) şi a capului de tabel (Column Headers) şi definirea unei taste accelerator. Redimensionarea tabelului şi a celulelor se face prin unealta de editare.Numărul de ordine pentru linii/coloane începe de la valoarea zero.

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

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

- - Tablouri de elemente de acelaşi tip

- - Ansambluri de elemente de tipuri diferite

- - Liste de erori de intrare;

- - Liste de erori de intrare.

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

După poziţionarea simbolului specific acestora pe suprafaţa ferestrei panou trebuie specificată eticheta ataşată elementului respectiv; specificarea ei ulterioară este dificilă. În acest moment sunt accesibile două căsuţe: căsuţa indicelui în care este specificat numărul de ordine al datei în cadrul tabloului şi căsuţa valoare în care vor fi

70

Page 6: Curs Cap4 Princiii Labview

specificate valorile din tablou. Tipul datelor din tablou precum şi specificarea faptului că tabloul conţine date de intrare sau ieşire se realizează atunci când este precizată prima dată din tablou; pentru aceasta se dimensionează corespunzător căsuţa valoare, se selectează din fereastra de controale şi indicatoare elementul specific tipului de date ce va fi conţinut de tablou şi se poziţionează în interiorul căsuţei valoare a tabloului. Datele conţinute de tablou vor fi controale sau indicatoare după cum elementul poziţionat în căsuţa valoare este control sau indicator.

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

Variabila tablou definită anterior are o singură dimensiune. Stabilirea sesiunilor suplimentare pentru un tablou se face astfel:• se măreşte (pe direcţia verticală în jos) cu unealta de editare căsuţa indicelui• se selectează opţiunea "Adaugă o Dimensiune" (Add Dimension) din meniul contextual, asociat variabilei tablou.

Accesul la o dată dintr-o locaţie a tabloului se poate face în cadrul programului prin specificarea indicelui (indicilor în cazul tablourilor multidimensionale) a locaţiei în case se găseşte aceasta.

O grupare de date (Cluster) este o structură compusă de date. Nu este obligatoriu ca elementele componente să aparţină aceluiaşi tip spre deosebire de limitarea apartenenţei unice a tipului la elementele unui tablou (Array). Se spune ca gruparea de date este o structură eterogenă. Prin operaţia de degrupare programatorul are acces simultan la toate elementele conţinute într-o variabila de tip grup, spre deosebire de tablouri, unde prin indexare se obţine accesul la un singur element.Fiecare element dintr-o structură de tip grupare de date are asociat un număr de ordine: al câtelea a fost adăugat mulţimii; numerotarea începe de la valoarea zero. Numărul de ordine asociat elementelor grupului este actualizat de LabVIEW automat, în momentul realizării operaţiilor de adăugare sau eliminare elemente. Există funcţii predefinite, asociate tipului de data grupare de date, care folosesc numărul de ordine al elementelor în cadrul grupului, pentru accesarea parţilor componente.

Crearea unei variabile tip grupare de date pe panoul frontal se face selectând din caseta cu controale o componentă "Grupare de date" (Cluster), opţiunea "Tablou & Grupare de date" (Array&Cluster). După plasarea variabilei grupare de date pe suprafaţa panoului frontal, se adaugă elementele componente: se selectează componenta din caseta cu controale/indicatoare şi se plasează deasupra chenarului reprezentării grafice a variabilei(grupare de date).

4.2.2.3. Elemente de intrare ieşire pentru fişiere de date

În LabVIEW există posibilitatea ca datele de intrare sau date intermediare prelucrate de o aplicaţie să fie preluate atât de la elementele de intrare de pe fereastra panou cât şi din fişiere în care acestea au fost stocate anterior. Există de asemenea posibilitatea ca datele obţinute în urma prelucrărilor efectuate să fie depuse în fişiere de date. Vom prezenta în continuare funcţiile principale utilizate în lucrul cu fişierele de date.

71

Page 7: Curs Cap4 Princiii Labview

Operaţiile cu fişiere presupun realizarea în principiu a trei paşi: primul constă în crearea sau deschiderea fişierului existent, al doilea în scrierea sau citirea datelor în respectiv din fişier iar cel de-al treilea constă în închiderea fişierului. Alte operaţii includ: mutarea, copierea ori ştergerea fişierelor, golirea fişierelor, schimbarea caracteristicilor fişierelor şi manipularea căilor fişierelor.

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

4.2.2.3.1. Tipuri de fişiere de date

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

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

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

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

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

Se pot face citiri dintr-un fişier de tip curent de octeţi specificând deplasamentul indexului şi de câte ori date curentul de octeţi specificat trebuie citit. Pentru a citi fişiere

72

Page 8: Curs Cap4 Princiii Labview

de tip “colecţie de date” trebuie specificate lungimea înregistrării sau indexul şi numărul de înregistrări ce trebuie citite.

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

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

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

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

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

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

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

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

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

asociat fişierului deschis. Elementele acestea sunt:

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

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

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

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

73

Page 9: Curs Cap4 Princiii Labview

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

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

Număr logic pentru control automat

Număr logic pentru resurse VISA

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

Număr logic coadă de aşteptare

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

Număr logic de întâlnire.Trebuie menţionat faptul că rolul de element de intrare sau ieşire specificat este

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

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

4.2.2.4. Alte elemente de intrare ieşire

- - Liste şi inele de selecţie cu următoarele elemente: - Liste de selecţie care permit selecţia ciclică (în inel)

- Liste care permit selectarea unei variante dintr-o listă desfăşurată;

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

- - Diagramă de forme de undă;

- - Grafice de forme de undă;

- - Grafice de funcţii oarecare;

74

Page 10: Curs Cap4 Princiii Labview

- - Diagramă de intensităţi;

- - Grafic de intensităţi

4.3. Fereastra cu unelte de uz general

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

Caseta cu unelte generale cuprinde instrumentele folosite de utilizator la crearea, editarea sau trasarea execuţiei instrumentelor virtuale. Afisarea/ ascunderea casetei cu unelte generale se face prin opţiunea "Ferestre / Afişează Caseta cu Unelte" (Windows / Show Tools Palette) din bara cu meniuri. Caseta cu unelte generale se prezintă în figura 1.16, în care s-a definit un sistem de identificare matriciala a uneltelor.

O alta metodă de afişare a casetei cu unelte generale se bazează pe comportarea contextuala: se poziţionează cursorul mouse-ului în interiorul ferestrei Panou Frontal sau Diagramă Bloc şi se apasă simultan tasta <Shift> şi butonul din dreapta mouse-ului.

Se exersează cele doua metode de afişare a casetei cu unelte generale prezentate (din bara cu meniuri şi acceleratori).

Semnificaţia elementelor casetei cu unelte generale este urmatoarea:- unealtă pentru operare (fig. 4.3, al)Prin intermediul uneltei se manevrează mai ales valorile elementelor panoului

frontal; se foloseşte mai rar în diagrama bloc, la stabilirea valorii constantelor (exemplu: constanta universală true-false, tablou de constante).

- unealtă de editare (fig. 4.3, a2)Se realizează: selectare, mutare, redimensionare obiect.- unealtă de etichetare (fig. 4.3, a3).Permite introducerea de la tastatură a textului.- unealtă de interconectare (fig. 4.3, bl)Se foloseşte în fereastra diagramei bloc, pentru a realiza legăturile între noduri

(elemente de execuţie). Firele definesc fluxul datelor. În panoul frontal se realizează corespondenţele între controale/ indicatoare ţi terminalele conectorului.

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

ferestrei.- unealta prin care se inserează în diagrama bloc un punct de întrerupere a

execuţiei IV, pe unul dintre fire (pe un fir se acceptă un singur punct de întrerupere) sau noduri.

Se foloseşte în scopul depanării programului (fig. 4.3, cl).- unealta sondă (fig. 4.3, c2)

75

Fig. 4.3. Fereastra cu unelte de uz

general

Page 11: Curs Cap4 Princiii Labview

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

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

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

pentru prim planul şi de fundalul obiectelor.

4.4. Fereastra diagramă

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

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

Elementele utilizate la realizarea diagramei bloc sunt clasificate în trei grupe generale:

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

76

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

Page 12: Curs Cap4 Princiii Labview

4.4.1. Nodurile

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

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

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

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

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

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

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

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

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

4.4.2. Fereastra de funcţii

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

77

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

Page 13: Curs Cap4 Princiii Labview

4.4.2.1. Elemente de tip structuri

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

Structurile accesibile sunt în acest caz:

4.4.2.1.1. Structura de tratare secvenţială

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

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

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

subdiagramei curente este afişat în partea superioară a chenarului instrucţiunii. În figura 4.7. se prezintă o parte din diagrama bloc a unui VI.

Semnificaţia elementelor din diagrama bloc a secvenţei (fig. 4.7.) se prezintă în continuare:

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

78

Fig. 4.6. Elementele sublistei structuri

Fig. 4.7. Utilizarea instrucţiunii secvenţiale

Page 14: Curs Cap4 Princiii Labview

- terminal de tip intrare local al secvenţei (fig. 4.7,f);- comentariu asociat legăturii (fig. 4.7,g);Trecerea de la o subdiagramă la alta se face prin elementele de control aflate în

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

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

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

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

Datele de intrare, furnizate instrucţiunii secvenţiale printr-un terminal tip tunel (fig. 4.7,d), sunt disponibile tuturor subdiagramelor.

Rezultatele obţinute într-o subdiagramă sunt făcute disponibile subdiagramelor următoare printr-un terminal local al secvenţei (de subdiagrame): din meniul contextual, asociat chenarului instrucţiunii secvenţiale se alege opţiunea „Adaugă un Terminal Local Secvenţei” (Add Sequence Local). Un terminal al secvenţei poate fi mutat de programator cu unealta de editare oriunde, pe cadrul instrucţiunii.

Terminalul local al secvenţei (definit pentru subdiagrama curentă) se afişează pe cadrul instrucţiunii printr-un dreptunghi plin, de culoare galben-deschis; în urma realizării legăturii la un terminal sursă, terminalul local al secvenţei va afişa o săgeată orientată înspre exteriorul cadrului instrucţiunii (fig. 4.7,e), indicând că „următoarele subdiagrame pot accesa valoarea furnizată”. Un terminal local al secvenţei, definit la nivelul subdiagramei cu numărul de ordine i, este disponibil tuturor subdiagramelor având numărul de ordine j, astfel încât j>i, dar nu este disponibil subdiagramelor anterioare, cu numărul de ordine k<i. În exemplul din figura 4.7,f se indică un terminal de intrare local al secvenţei pentru subdiagrama 1 şi , care se defineşte în subdiagrama numărul 0; terminalul de intrare local al secvenţei indicat în figura 4.7,h, nu se foloseşte în subdiagrama numărul 1. terminalul de intrare local al secvenţei din figura 4.7,i este definit în subdiagrama 2 şi deci nu este disponibil în secvenţa numărul 1.

Se recomandă adăugarea unor etichete descriptive firelor conectate la terminale de intrare/ieşire locale secvenţei (fig. 4.7,g) cu scopul uşurării înţelegerii/ depanării/ întreţinerii subdiagramelor.

4.4.2.1.2. Structura de tratare opţională

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

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

79

Page 15: Curs Cap4 Princiii Labview

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

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

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

Observaţie:Din mulţimea subdiagramelor reunite în instrucţiunea Case se execută

întotdeauna una din cazuri (subdiagrame), spre deosebire de alte limbaje de programare bazate pe text (Pascal, C), în care se putea să nu se execute nici una dintre alternative (cazul lipsei ramurilor opţionale ELSE).Terminalul selector se află întotdeauna pe partea stângă a chenarului instrucţiunii şi poate fi mutat de utilizator; este obligatoriu să se realizeze o legătură la acesta. După preluarea instrucţiunii de selecţie din caseta cu funcţii şi IV şi plasarea în diagrama bloc, se observă că etichetele case sunt: „ADEVĂRAT” şi „FALS” (TRUE şi FALSE);În acest caz instrucţiunea de selecţie este echivalenta instrucţiunii condiţionale THEN-ELSE. Dacă sursa pentru terminalul selector este de tip numeric întreg se verifică schimbarea etichetelor case din FALSE în 0; respectiv TRUE în 1.

Dacă valoarea expresiei selector este de tip real, atunci se realizează automat rotunjirea la primul întreg.

Valoarea etichetelor case se poate modifica cu unealta de etichetare; poate fi de tip numeric întreg, boolean, şir de caractere. Nu se permit valori reale pentru etichetele selectoare. Valoarea etichetei case trebuie să aparţină tipului expresiei selector; în caz contrar, se semnalează eroare: valoarea etichetei case este afişată în culoare roşie.

4.4.2.1.3. Structura repetitivă for

Structura de tratare repetitivă „For Loop”. Structura de tratare repetitivă de tip „for” permite efectuarea calculelor iterative. Fluxul de date plasat în aceasta structura este executat de N ori, indicele ciclului variind de la 0. Comenzile permit în particular adăugarea sau eliminarea unor rezultate provenite din iteraţiile precedente cu ajutorul registrelor de decalare „Shift Register”. Registrele de decalare permit atât stocarea variabilelor calculate la un moment dat cât şi conservarea valorilor anterioare ale unei variabile.

Transferul elementelor unui tablou (aflat în exteriorul structurii repetitive) în interiorul subdiagramei instrucţiunii „FOR” se face printr-un tunel de intrare, situat pe chenarul buclei. Tunelul de intrare permite implicit auto-indexarea în cazul instrucţiunii For: elementele tabloului sunt furnizate pe rând subdiagramei, câte unul la fiecare iteraţie, începând cu primul element (de indice 0); dimensiunea tabloului dă valoarea numărului de ciclări. Întregul tablou este furnizat subdiagramei la fiecare buclă, dacă pentru acel tunel de intrare este dezactivată opţiunea de auto-indexare. Auto-indexarea se întâlneşte şi la nivelul tunelurilor de ieşire: valoarea furnizată, la fiecare iteraţie, tunelului de ieşire este reţinută într-un tablou, a cărui dimensiune creşte automat la

80

Page 16: Curs Cap4 Princiii Labview

fiecare buclare; tabloul este furnizat în exteriorul instrucţiunii For doar după finalizarea execuţiei nodului.

Activarea/inactivarea auto-indexării pentru un terminal tunel se face selectând opţiunea „Activează Indexarea”/ „Dezactivează Indexarea” (Enable Indexing/ disable Indexing) din meniul contextual asociat tunelului.

Pentru verificarea vizuală a aplicării auto-indexării la nivelul unui tunel de pe chenarul instrucţiunii For, programatorul se bazează pe codificarea complexităţii structurii datei în reprezentarea grafică a legăturii: firul (legătura) prin care se furnizează în întregime un tablou este mai gros decât cel asociat furnizării unei valori singulare (element de tablou).

Dacă există mai multe tunele de intrare (de pe aceeaşi instrucţiune „For”) pentru care se aplică auto-indexarea, atunci numărul de iteraţii este dat de valoarea minimă (Min) dintre valoarea furnizată terminalului N şi dimensiunile tablourilor; vor fi executate doar primele Min elemente ale tablourilor.

Este posibilă transferarea rezultatelor între iteraţii succesive; se declară nişte variabile locale instrucţiunii For, numite registre de transfer.

Crearea unui registru de transfer se face prin opţiunea „Adaugă Un Registru de Transfer” (Add Shift Register), din meniul contextual asociat numărului instrucţiunii „For”. Nu este limitat numărul registrelor de transfer care se pot defini pentru o structură „For”.

Un registru de transfer este alcătuit dintr-o pereche de terminale dispuse pe aceeaşi orizontală, unul în partea stângă şi altul în partea dreaptă a numărului structurii. Ambele terminale pereche se deplasează simultan, la citirea unuia dintre ele. Valoarea este furnizată terminalului drept după încheierea ciclului; la începutul ciclului următor, valoarea stocată (în iteraţia anterioară) în terminalul drept este transferată terminalului stâng. La ultima apelare, valoarea atribuită terminalului din dreapta este furnizată în exteriorul secţiunii, dacă există o astfel de legătură.

Se recomandă iniţializarea registrului de transfer înainte de execuţia noii iteraţii a instrucţiunii For; se furnizează din exteriorul structurii o apelare terminalului stâng

4.4.2.1.4. Structura de control repetitiv While Loop

Structura de control repetitiv „While Loop”. Structura de control repetitiv „while” permite efectuarea calculului iterativ atunci când nu se cunoaşte numărul de repetări. Oprirea ciclului de iteraţii este condiţionată boolean: repetarea se executa când valoarea booleană este adevărată. Oprirea executării structurii este comandată de o variabilă tip boolean „opreşte dacă este fals”. Ca şi în cazul structurii de control precedente, lista comenzilor de formare este identica cu cele anterioare.

Prin intermediul registrelor de transfer se permite furnizarea rezultatelor între iteraţii seccesive al instrucţiunii repetitive. Definirea şi utilizarea registrelor de transfer pentru structura „Do-While” este identică cu cea prezentată la instrucţiunea „For”.

Auto-indexarea nu se aplică implicit pentru un tunel (intrare/ieşire) de pe structura „Do-While”, ca şi în cazul instrucţiunii For: programatorul trebuie să indice explicit pentru fiecre tunel, dacă se doreşte utilizarea auto-indexării.

Numărul de repetări ale corpului modului „Do-While” este controlat, în primul rând, de valoarea logică („Adevărat”) a expresiei de oprire şi mai puţin de dimensiunea unui tablou furnizat subdiagramei printr-un tunel de intrare, care foloseşte auto-

81

Page 17: Curs Cap4 Princiii Labview

indexarea. După parcurgerea (prin auto-indexare) tuturor elementelor tabloului, valoarea implicită asociată tipului elementului de tablou se va transfera corpului buclei, în toate iteraţiile următoare, astfel:

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

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

4.4.2.1.5. Structura formule de calcul

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

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

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

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

asemănătoare limbajelor de programare, bazat pe text. Nodul formulă de calcul defineşte operaţiile prin una sau mai multe instrucţiuni de atribuire fiecare terminându-se prin caracterul punct şi virgulă („;”). Se precizează că o instrucţiune se poate întinde pe mai multe linii de text; numărul maxim de caractere, care încap pe o linie, este dat de dimensiunea tipului de caractere folosit şi de dimensiunea orizontală a nodului formulă de calcul. Mărirea dimensiunii orizontale a nodului se face cu unealta de editare, pentru a se afişa cât mai multe caractere pe o linie; în general, se doreşte a se afişa câte o instrucţiune de atribuire pe fiecare linie, pentru că se uşurează munca programatorului de verificare a formulelor introduse.Prelucrările realizate de instrucţiunile de atribuire din interiorul nodului se bazează (în general) pe datele furnizate din exteriorul formulei de calcul, prin intermediul variabilelor de intrare. Rezultatele operaţiilor efectuate de nodul formula de calcul sunt transferate în exterior prin variabila de ieşire.

Variabilele de intrare şi de ieşire se definesc pe chenarul reprezentării grafice a nodului: din meniul contextual asociat chenarului se alege opţiunea „Adaugă o Intrare”/ „Adaugă o Ieşire” (Add Imput/ Add Output), după care se indică identificatorul variabilei nodului formulă de calcul şi poate fi deplasat de programator oriunde pe perimetrul acesteia. Se încearcă respectarea convenţiei: variabilele de intrare se plasează în partea stângă, iar variabilele de ieşire în partea dreaptă a chenarului structurii formulă de calcul. Variabila (definită pe chenarul nodului) este referită în instrucţiunile de atribuire prin numele acordat (identificatorul) de programator.

82

Page 18: Curs Cap4 Princiii Labview

4.4.2.1.6. Variabile locale

Variabilele locale corespund elementelor de pe fereastra panou şi sunt accesibile numai din fereastra diagramă. Sunt utile atunci când nu se pot realiza legături la elementele de fereastra diagrama cărora le sunt ataşate variabilele locale. Pentru crearea unei variabile locale se procedează astfel:

- Se selectează din caseta de structuri simbolul şi se poziţionează pe în fereastra diagramă – atunci când butonul mouse-ului este eliberat variabila

locală este simbolizată pe fereastra diagramă astfel: - Se selectează din meniu-ul contextual asociat variabilei locale opţiunea “select

item”, care are ca urmare afişarea tuturor etichetelor elementelor de pe panoul frontal (sunt marcate cele care deja au ataşate variabile locale) – în interiorul simbolului variabile va fi afişată eticheta elementului selectat.ca în figura 2.

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

4.4.2.1.7. Variabile globale

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

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

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

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

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

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

4.4.2.2. Alte elemente ale ferestrei de funcţii

4.4.2.2.1. Elemente de tip aritmetic

Operaţie aritmetică „plus” .

Operaţie aritmetică „minus”.

83

Fig. 2. Variabila locală

Page 19: Curs Cap4 Princiii Labview

Operaţie aritmetică „înmultire”.

Operaţie aritmetică „împartire”.

Operaţie cu numere complexe.

Schimbarea de semn în „plus”.

Schimbarea de semn în „minus”.

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

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

Şir de operaţii.

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

Rotunjire către cel mai apropiat întreg.

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

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

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

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

Negarea valorilor de intrare.

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

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

Valoarea reciprocă a valorilor de intrare.

4.4.2.2.2. Elemente de tip constante

Constante numerice.

Introducerea unor intrări sau ieşiri (constante).

Intrări şi ieşiri prin texte.

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

84

Page 20: Curs Cap4 Princiii Labview

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

4.4.2.2.3. Elemente de tip trigonometric şi logaritmic

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

Funcţia logaritmică.

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

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

4.4.2.2.4. Elemente de tip logic

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

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

Operator logic „EXCLUSIV SAU ”

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

Şir de operaţii.

Operator logic „ŞI NEGAT”.

Operator logic „SAU NEGAT”.

Operator logic „EXCLUSIV SAU NEGAT”.

Operator logic „Implică”.

Şir de elemente „ŞI”.

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

Introducerea unei valori booleene de 8, 16, 32 elemente şi ieşirea unui număr.

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

85

Page 21: Curs Cap4 Princiii Labview

Constante programabile booleene.

4.4.2.2.5. Elemente de tip şir de caractere

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

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

Subansamblu unui şir de caractere.

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

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

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

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

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

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

Căutarea unui şir de caractere.

Alegerea şi formarea unui şir de caractere.

Schimbarea din şir de caractere în format vectorial.

Schimbarea unui vector în format şir de caractere.

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

Conversia caracterelor din litere mici în litere mari.

Conversia caracterelor din litere mari în litere mici.

Rotaţia primului caracter.

Inversarea şirului de caractere.

86

Page 22: Curs Cap4 Princiii Labview

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

Şir de caractere constante.

Lipsa şirului de caractere.

Propune mişcarea în sens invers.

Circuit de alimentare.

Sfârşitul circuitului de alimentare.

Declanşator al butonului de apăsare.

4.4.2.2.6. Elemente de tip vectori şi matrice

Dimensiunea unei matrice.

Extragerea unui element dintr-un vector.

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

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

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

Iniţializarea vectorului.

Adăugarea elemente unui vector.

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

Transpusa unei matrice.

Căutarea unui element de o singură dimensiune.

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

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

87

Page 23: Curs Cap4 Princiii Labview

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

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

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

Distribuţia unui vector de o singura dimensiune.

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

Indici matriciali.

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

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

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

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

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

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

Indicii celulelor.

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

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

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

88

Page 24: Curs Cap4 Princiii Labview

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

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

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

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

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

Functie de comparatie „egal cu zero”.

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

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

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

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

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

Funcţie de comparaţie.

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

Functie de comparaţie.

Funcţie de comparaţie.

Funcţie de comparaţie.

Funcţie de comparaţie.

Funcţie de comparaţie.

Funcţie de comparaţie.

89

Page 25: Curs Cap4 Princiii Labview

Funcţie de comparaţie.

Funcţie de comparaţie.

Funcţie de comparaţie.

4.4.2.2.8. Elemente de tip control dialog şi timp

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

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

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

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

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

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

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

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

90

Page 26: Curs Cap4 Princiii Labview

4.4.2.2.9. Controlul erorilor

Erori simple.

Erori general.

Găsirea primei erori.

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

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

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

Scrierea caracterelor în fişier.

Citirea caracterelor din fişier.

Citirea liniilor din fişier.

Fişier binar.

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

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

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

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

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

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

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

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

91

Page 27: Curs Cap4 Princiii Labview

Fişiere constante.

Înaintarea fişierelor.

Funcţii specifice comunicaţiei pe protocoale standard.

4.4.2.2.11. Elemente de programare necesare controlului unei conumicaţii paralele din sublista GPIB

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

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

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

4.4.2.2.13.Instrumente virtuale de control a transmisiei seriale

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

4.4.2.2.14. Instrumente virtuale pentru controlul placii de achiziţie

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

92

Page 28: Curs Cap4 Princiii Labview

- citirea datelor analogice; - stergerea datelor citite;

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

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

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

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

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

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

4.4.2.2.15. Elemente ale listei ANALYSIS

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

Transformata Fourier.Calculul trasformatei Fourier a unui semnal real. Rezultatul este complex. Daca numărul „n”de eşantioaneX(xj) este de forma 2m

atunci calculul se face conform unui algoritm FFT. Reprezentarea spectrală obţinută (amplitudinii xi):* x0 : valoarea continuă a semnalului;* x1 : prima armonică sau fundamentala* x2 : a doua armonică……………………..* xn/2-1 :a n/2-1 armonică* xn/2 : armonica lui Nyquist (punct de simetrie)* xn/2+1 : a n/2+1 armonică……………………..

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

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

Măsurări numerice.

93

Page 29: Curs Cap4 Princiii Labview

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

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

Elemente de tip regresie ale sublistei ANALYSIS

Curbe corespunzătoare mediei valorilor punctelor.

Elemente de tip statistic ale sublistei ANALYSIS

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

Elemente de tip algebră liniară ale sublistei ANALYSIS

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

Elemente de tip funcţii matriciale ale sublistei ANALYSIS

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

4.4.2.2.16. Simboluri de instrumente virtuale create ca exemple

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

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

Generator de semnal.

94

Page 30: Curs Cap4 Princiii Labview

4.4.2.2.17. Fereastră pentru alegerea elementelor diverse

Apelarea librăriei funcţionale.

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

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

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

Producerea unui sunet ca şi ferestrele Windows.

Lanţ de chemare a următorului nivel.

Tipăreşte datele din programul LabVIEW.

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

Folosirea instrumentelor existente în LabVIEW.

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

Setează, generează şi asteaptă evenimentele.

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

Instrumente diverse.

4.5. Programarea canalelor de intrare analogice

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

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

95

Page 31: Curs Cap4 Princiii Labview

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

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

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

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

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

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

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

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

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

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

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

96

Fig 4.8 Submeniul Intrari analogice

Page 32: Curs Cap4 Princiii Labview

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

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

4.5.1. Funcţii de achiziţii pentru programare de nivel redus

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

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

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

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

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

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

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

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

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

ieşirea Eşantion. Aceste funcţii pot fi utilizate pentru măsurarea unui eşantion sau a unui grup de eşantioane specificat. Atunci când se doreşte măsurarea continuă funcţiile vor fi incluse în cadrul unor cicluri repetitive.

4.5.2. Funcţiile pentru programarea de nivel mediu

Utilizarea funcţiilor de achiziţie de nivel mediu presupune un efort mai mare în realizarea programului de achiziţii, cunoaşterea mai amănunţită a modului de programare a canalelor, dar, oferă posibilităţi mai largi de utilizare decât funcţiile de nivel redus.

Funcţiile de achiziţie de nivel mediu sunt:- Configurarea unei intrări analogice.

Semnificaţia semnalelor de uz general este cea specificată anterior. Ca semnal specific este

97

Page 33: Curs Cap4 Princiii Labview

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

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

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

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

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

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

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

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

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

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

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

tablou unidimensional valorile datelor scanate.Funcţiile prezentate trebuie înlănţuite în cadrul unui TASK ID. Unele din aceste

funcţii apelează funcţii din cadrul submeniului „Advenced analog input”, din cadrul submeniului „Analog input”. Prezentăm spre exemplificare diagrama unui program de achiziţie date analogice pe un singur canal.

98

Page 34: Curs Cap4 Princiii Labview

Programul prezentat permite achiziţionarea unui număr de eşantioane precizat de dimensiunea tamponului de memorie (buffer)

În cazul când se doreşte o achiziţionare continuă este necesar ca secvenţa de achiziţie să fie introdusă într-un instrument de repetare ca în figura. 4.10.

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

Acest funcţii pot fi apelate prin activarea

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

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

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

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

99

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

Fig. 4.10. Achiziţie continuă

Fig. 4.11. Sublista funcţii de nivel ridicat

Page 35: Curs Cap4 Princiii Labview

numărului de eşantioane ce pot fi stocate în fiecare tampon de memorie. Valoarea acestui parametru este în mod implicit –1, ceea ce determină să se păstreze dimensiunea implicită a tampoanelor de memorie care este de 100 eşantioane.

- Citire tampoane de memorie (AI Buffer Read); funcţia permite furnizarea valorilor semnalelor stocate în tampoanele interne de memorie

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

Când acest semnal este setat la valoarea 3 ( holdoff clock1) inversa frecvenţei de ceas este egală cu perioada holdoff exprimată în secunde. Valoarea 0 a frecvenţei de ceas întrterupe ceasul. Valoarea implicită este –1 care comunică compilatorului LABVIEW să utilizeze semnalul „alternate clock rate specification” în locul parametrului „frecvenţă de ceas”. Setarea implicită este specifică plăcii şi ceasului utilizat. În help-ul interactiv sunt specificate frecvenţele pentru fiecare tip de placă. Funcţia de configurare a ceasului este utilă mai ales în cazul plăcilor care au mai mult de un canal de ceas. Pentru testare setării actuale a ceasului poate fi utilizată ieşirea „actual clock rate specification” care conţine informaţii referitoare la frecvenţa de ceas, perioada ceasului, sau rata de divizare a bazei de timp (atunci când se utilizează o sursă internă).

- Control intrări analogice (AI Control) – funcţie care permite controlul taskurilor de intrări analogice precum şi cantitatea de date achiziţionate. Această funcţie nu poate fi utilizată pentru lansarea achiziţiilor de date cu plăcile PC-LPM-16, DAQCArd500 sau DAQCArd-700 pentru a scana canale multiple în mod multiplexat; ăn acest caz va trebui utilizată func-ia de achiziţie a unui singur eşantion (AI Single Scan).

100

Page 36: Curs Cap4 Princiii Labview

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

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

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

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

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

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

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

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

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

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

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

101

Page 37: Curs Cap4 Princiii Labview

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

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

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

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

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

Semnalul de intrare specific: „Limite intrare” (input limits) este un tabel de grupuri. Fiecare element al tabelului conţine limitele aşteptate ale semnalului de intrare pentru canalele specificate. Dacă în tabel sunt mai puţine elemente referitoare la limite decât canale, atunci, este utilizat ultimul element al tabelului pentru configurarea restului de canale.

- Parametri intrări analogice (AI Parameter) – Funcţia configurează şi recuperează diferiţi parametri asociaţi cu operarea dispozitivelor de intrare analogice neacoperite de celelalte funcţii de intrare analogice.

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

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

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

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

102

Page 38: Curs Cap4 Princiii Labview

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

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

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

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

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

Semnalul de ieşire specific este Date scalate (scaled data) care conţine valoarea

eşantionului în unităţi fizice.- Configurare declanşare (AI Trigger Config) – funcţia configurează condiţiile

de declanşare pentru pornirea achiziţiei, ceasulurilor de canal şi a contorului de

eşantioane. Semnalule de intrare specifice sunt:- Tip declanşare (trigger type) – care poate lua una din valorile:

o 0 : Nu se modifică setarea tipului declanşării (intrare implicită)o 1 : Declanşare analogică (setare implicită)o 2 : Declanşare digitală A;o 3 : Declanşare digitală B;o 4 : Declanşare achiziţie digitală temporizată;o 5 : Declanşare achiziţie analogică temporizată;

103

Page 39: Curs Cap4 Princiii Labview

o 6 : Declanşare mod general - Mod (mode) care permite activarea şi dezactivarea tipului de declanşare, şi

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

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

4.5.4. Programarea contorilor 8253

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

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

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

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

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

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

dreptunghiulare4.Modulul de instalare 4 – impuls declanşat software5.Modulul de instalare 5 - impuls declanşat hardware6.Citire .7.Ştergere.

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

104

Figura 4.12. Diagrama modului 0

Page 40: Curs Cap4 Princiii Labview

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

În modulul de instalare 2 aşa cum se vede in figura 4.14., ieşirea devine 0 ( nivel jos) pentru o perioada de ceas . Contorul indică o perioada dintre pulsurile de ieşire.

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

În modulul de instalare 4, ca în figura 4.16., ieşirea este iniţial 1 (nivel ridicat), contorul începând să numere în timp ce semnalul de poartă este 1. La terminarea contorizării, ieşirea devine 0 pentru un impuls al ceasului, apoi devine iarăşi 1.

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

105

Fig. 4.13. Diagrama modului 1

Fig. 4.14. Diagrama modului 2

Fig. 4.15. Diagrama modului 3

Fig. 4.16. Diagrama modului 4

Fig. 4.17. Diagrama modului 5

Page 41: Curs Cap4 Princiii Labview

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

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

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

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

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

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

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

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

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

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

se întoarce valoarea de pe contor.

106


Recommended