Sunteți pe pagina 1din 9

Elemente de electronică și mediu de programare pentru fluxuri - Dr. Ing.

Vlad-Cristian Georgescu

Curs 2 – Operatii cu instrumente virtuale (VI-uri)

1. Obiecte în diagrama bloc

Obiectele utilizate în diagrama bloc sunt denumite terminale, noduri sau funcţii,
legate între ele prin conexiuni (wires).

Obiectele din panoul frontal apar în diagrama bloc sub formă de terminale.
Astfel, terminalele reprezintă porturi de intrare și de ieșire care permit schimbul de
informaţii între panoul frontal şi diagrama bloc. Datele care se introduc prin elementele
de control dispuse pe panoul frontal sunt transmise în diagrama bloc prin terminale de
intrare, iar rezultatele funcţionării ies din diagrama bloc şi sunt transmise indicatoarelor
din panoul frontal prin terminalele de ieşire. În tabelul care urmează sunt listate tipurile
de terminale pentru date numerice, booleene şi şiruri:

Terminalele elementelor de control se pot deosebi prin faptul că au linia


exterioară a dreptunghiurilor mai groasă decât la cele ale indicatoarelor, iar vârfurile de
săgeată sunt plasate pe latura din dreapta şi orientate către exterior, pe când la
indicatoare sunt plasate pe latura din stânga şi orientate către interior. Simbolurile
înscrise în dreptunghiuri şi culorile sunt diferite în funcţie de tipurile de date şi de
caracteristicile de reprezentare ale acestora.

Terminalele de tip constante sunt acelea care introduc date cu valori fixe direct în
diagrama bloc şi pot fi de două tipuri: constante universale şi constante definite de
utilizator.
Ca exemple de constante universale cu valori numerice fixe sunt cele întâlnite în
mod curent în matematică şi fizică. Ele se pot găsi în paleta de funcţii executând
Functions >> Numeric >> Additional Numeric Constants.
Constantele definite de utilizator sunt constante stabilite în timpul editării şi a
căror valoare nu poate fi modificată în timpul execuţiei VI-ului. Paleta Functions conţine
constante organizate în diverse subpalete după tipuri de date, de exemplu numerice,
booleene, şiruri etc.
O constantă definită de utilizator se creează executând click pe un terminal cu
tasta dreaptă a mouse-ului şi selectând Create Constant din meniul propriu.

Nodurile sunt obiecte în diagrama bloc care au intrări şi /sau ieşiri şi care
execută anumite operaţii în funcţionarea VI-ului. Ele sunt asemănătoare declaraţiilor,
operatorilor, funcţiilor, subrutinelor de la limbajele de programare convenţionale.

LabVIEW conţine mai multe tipuri de noduri, dintre care:


 Functions (funcţii): elemente de execuţie incluse, similar cu un operator, o funcţie
sau o declaraţie;
 SubVIs (subVI-uri):VI-uri utilizate în diagrama bloc a unui alt VI, similar cu
subrutinele;
 Structures (structuri): elemente de control al transferului de date în diagrama bloc
ce stabilesc ordinea şi repetarea execuţiei programului VI-ului;
 Formula Nodes (noduri cu formule): structuri care servesc la introducerea de
formule şi ecuaţii în diagrama bloc, sub formă de cod;
 Property nodes (noduri cu proprietăţi): noduri care permit să se prescrie sau să
se modifice proprietăţile unei categorii de obiecte;

Paleta de funcţii conţine numeroase funcţii grupate pe categorii, în subpalete,


dintre care cele mai importante şi des utilizate sunt: Numeric, Boolean, String, Array,
Comparison, Mathematics etc. În cele ce urmează se vor prezenta câteva exemple de
noduri din categoriile funcţii şi structuri.

2
Noduri de funcţii pentru valori numerice
În subpaleta Numeric se află funcţiile pentru valori numerice în care se remarcă
o categorie, dedicată funcţiilor aritmetice simple: adunare (Add), scădere (Subtract),
înmulţire (Multiply), împărţire (Divide), incrementare (Increment), decrementare
(Decrement), valoare absolută (Absolute Value), rotunjire la cel mai apropiat întreg
(Round To Nearest), rotunjire la întregul inferior (Round To -Infinity), rotunjire la întregul
superior (Round To +Infinity), generator de numere aleatoare între 0 şi 1 (Random
Number 0-1), rădăcina pătrată (Square Root), compunere aritmetică (Compound
Arithmetic), schimbare de semn (Negate), produsul dintre o valoare x şi o putere a lui 2
(Scale By Power Of 2), inversare (Reciprocal) etc., aşa cum se observă în Figura 1. Se
găseşte, de asemenea, elementul Numeric Constant (constantă numerică). Atunci când
un astfel de element este dispus în diagramă, el capătă automat valoarea 0 şi intră în
modul de editare, aşteptând ca utilizatorul să introducă valoarea numerică dorită.

Fig. 1 Funcţiile grupate în subpaleta Numeric

Noduri de funcţii pentru valori booleene


Dintre funcţiile pentru valori booleene, grupate în subpaleta Boolean (Figura 2),
se remarcă funcţiile logice simple: și (And), sau (Or), sau exclusiv (Exclusive Or),
negare (Not), și negat (Not And), sau negat (Not Or), sau negat exclusiv (Not Exclusive
Or), implică (Implies) etc. Subpaleta Boolean conţine şi cele două constante logice:
Adevărat (True) şi Fals (False).

3
Fig. 2 Funcţiile grupate în subpaleta Boolean

Noduri din categoria șiruri


Funcţiile pentru valorile alfanumerice sunt grupate în subpaleta String (Figura 3)
a paletei de funcţii. Mai frecvent utilizate sunt cele pentru transformarea caracterelor în
majuscule (To Upper Case), pentru transformarea caracterelor în minuscule (To Lower
Case), de calculare a lungimii unui şir de caractere (String Length), de compunere a
unui şir din două şiruri distincte (Concatenate String), de identificare şi înlocuire a unui
şir în cadrul altuia (Search and Replace String), etc

Fig. 3 Funcţiile grupate în subpaleta String

Noduri din categoria structuri


Ca şi celelalte tipuri de noduri, structurile au terminale care le permit să se
conecteze cu alte noduri, programul rulând automat, adică din momentul în care apar
datele la intrare sunt furnizate rezultatele la terminalele de ieşire. Fiecare structură are o

4
frontieră redimensionabilă, care include o porţiune din diagrama bloc, denumită
subdiagramă, în care rularea programului se execută după regulile impuse de structură.
Terminalele care transferă datele înspre şi dinspre subdiagramă se numesc
tunele şi sunt puncte de conectare situate pe frontieră.

În subpaleta Structures a paletei Functions (Figura 4) se găsesc:


 Structura For Loop: buclă repetitivă cu număr fix de iteraţii;
 Structura While Loop: buclă repetitivă cu condiţie de terminare;
 Structura Case: structură de caz ce poate conţine mai multe subdiagrame dintre
care una singură se execută în funcţie de mărimea aplicată la intrare;
 Structura Sequence: structură secvenţială care conţine mai multe subdiagrame
ce se execută în ordine succesivă;
 Structura Formula Node: structură care efectuează operaţii matematice pentru
intrări numerice;
 Structura Event: structură care poate conţine una sau mai mult subdiagrame a
căror execuţie depinde de modul în care utilizatorul intervine asupra VI-ului

Fig. 4 Structurile grupate în subpaleta Structures

Realizarea unei conexiuni între două componente ale diagramei se efectuează


cu ajutorul uneltei de conectare selectată din paleta de instrumente Tools. Ordinea
în care se selectează cele două componente - sursa şi destinaţia - nu este importantă.
Pentru realizarea conexiunii se deplasează cursorul mouse-ului, transformat în
unealta de conectare, deasupra primei componente, care începe să clipească şi se face
click, stabilind primul capăt al legăturii. Din acest moment, dacă mouse-ul este deplasat,
pe ecran va apare, în timp real, imaginea unui fir cu un capăt fixat de prima componentă
şi cu un capăt legat de cursorul mouse-ului.
5
Se deplasează cursorul mouse-ului deasupra celei de-a doua componente care
începe, la rândul său, să clipească şi se face click, fixând, astfel, al doilea capăt al firului
de această componentă.
În cazul unei legături efectuate corect, aceasta va fi afişată în culoarea
corespunzătoare tipului de date (Figura 5) ce vor circula prin zona respectivă a fluxului
de date. În caz contrar, când legătura este incorectă, aceasta va fi afişată cu culoarea
neagră şi întreruptă.
În cazul structurilor se poate conecta direct un terminal din exterior cu unul din
interior printr-un tunel.

Fig.5 Reprezentarea datelor pe fire

Selectarea unei conexiuni în vederea ştergerii sau modificării se face în modul


următor: executând click o singură dată cu unealta de poziţionare se selectează
segmentul (orizontal sau vertical) deasupra căruia se află unealta respectivă, dacă se
face click de două ori se selectează ramura din care face parte segmentul (între două
puncte de joncţiune), iar dacă se face click de trei ori se selectează toată conexiunea
(între toate teminalele conectate).

Fluxul de date este format din totalitatea legăturilor ce conectează diversele


terminale de elemente, simboluri de funcţii sau proceduri şi structuri de programare din
cadrul diagramei. Fluxul de date reprezintă grafic algoritmul (Figura 6) după care
aplicaţia prelucrează datele de intrare pentru a le calcula pe cele de ieşire. Traseele ce
formează fluxul de date pot fi simple (o sursă şi o destinaţie) sau ramificate (o sursă şi
mai multe destinaţii).
Indiferent de modul sau sensul în care traseele sunt dispuse pe diagramă,
circulaţia datelor în cadrul fluxului se efectuează numai de la surse către destinaţii.
Prin sursă se înţelege, spre exemplu, terminalul unui element de control,
simbolul unei constante sau zona de ieşire a unei funcţii sau proceduri.
O destinaţie poate fi terminalul unui element indicator sau zona de intrare a unei
funcţii sau proceduri.

6
Fig. 6 Traseele fluxului de date

Odată ce programarea instrumentului virtual a fost încheiată, acesta poate fi


rulat, atât pentru depistarea eventualelor erori, cât, mai ales, pentru a-l utiliza în
conformitate cu scopul pentru care a fost realizat.

2. Salvarea unui VI nou creat sau modificat

Pentru a specifica folder-ul în care programul să fie salvat, precum şi numele


fişierului, se alege din meniul File opţiunea Save As... . În urma selectării comenzii Save
As... , programul deschide o fereastră de dialog în care utilizatorul poate selecta folder-
ul în care să se efectueze salvarea şi numele fişierului.
Programele realizate în mediul de programare grafică LabVIEW se salvează în
fişiere cu extensia ”.vi”.
Din momentul în care a fost salvat prima dată, programului i se afişează numele
atât în bara superioară a panoului cât şi în cea a diagramei.
Dacă, după salvare, programului i se aduc în continuare modificări, lângă numele
acestuia apare un asterisc (*), semnalizând astfel faptul că versiunea ce a fost salvată
nu este cea mai recentă.

În cazurile în care trebuie salvate mai multe VI-uri şi se dorește o grupare a lor,
LAbVIEW permite crearea unei “biblioteci” de VI-uri. Crearea unei astfel de biblioteci se
obţine selectând Save As din meniul File, ceea ce are ca efect deschiderea unei
ferestre unde, apăsând pe butonul New VI Library, va apărea o casetă în care se
introduce numele bibliotecii urmat de extensia “.llb”, după care se afişează o nouă
casetă de dialog în care se înscrie numele VI-ului din biblioteca nou creată.

7
3. Căutarea şi vizualizarea unor exemple de VI-uri

LabVIEW-ul conţine sute de exemple de VI-uri create pentru a demonstra


facilităţile acestui mediu de programare grafică pentru diverse domenii ale
instrumentaţiei, de la achiziţia datelor, analiza şi procesarea semnalelor, măsurarea
unei game largi de mărimi fizice, până la controlul şi automatizarea proceselor.
Studierea acestor exemple este deosebit de utilă pentru demonstrarea bazelor
programării grafice, pentru aprofundarea posibilităţilor de construire de instrumente
virtuale, de observare a rulării acestora şi chiar pentru importarea directă sau cu
modificări a unora dintre ele ca subVI-uri.

Pentru a accede la exemplele oferite de LabVIEW: din meniul Help, se


selectează opţiunea Find Examples, ceea ce conduce la deschiderea casetei de dialog
denumită tot Find Examples, în care este afășată lista de domenii din care se pot
extrage exemple şi două opţiuni Browse şi Search;

4. Documentație și Help

Help-ul LabVIEW conţine informaţii despre conceptele de programare LabVIEW,


instrucţiuni pas cu pas pentru utilizarea LabVIEW, şi informaţii de referinţă despre
instrumentele virtuale, despre funcţii, palete, meniuri, unelte, proprietăţi, metode,
evenimente, casete de dialog, şi aşa mai departe. Help-ul enumeră, de asemenea,
resurse de documentare LabVIEW disponibile.
Pentru a accesa informaţii de ajutor selectați din meniul Help > LabVIEW Help
(sau tasta F1).

În timpul lucrului, programatorul are deseori nevoie de informaţii privind sintaxa


de utilizare a elementelor din diagrama bloc, iar LabVIEW i le oferă într-un mod foarte
intuitiv, prin intermediul ferestrei Help contextual (Context Help) (Figura 7).
Astfel, selectarea din meniul Help a comenzii Show Context Help (sau CTRL +
H) conduce la deschiderea unei ferestre în care sunt afişate un minim de informaţii
referitoare la funcţia corespunzătoare simbolului deasupra căruia este poziţionat
cursorul mouse-ului.
Dacă un simbol de funcţie a fost deja dispus în diagramă iar cursorul mouse-ului
este poziţionat deasupra acestuia, în fereastra Context Help apar informaţii referitoare
la funcţia respectivă (Figura 7).

8
Fig. 7 Afişarea informaţiilor referitoare la un simbol de funcţie

Se recomandă utilizatorilor, care vin prima oară în contact cu mediul de


programare LabVIEW, să țină deschisă fereastra Context Help pe parcursul dezvoltării
aplicației şi să observe modul în care informaţiile afişate se modifică atunci când
cursorul mouse-ului trece pe deasupra diverselor simboluri de funcţii.

O altă facilitate importantă este aceea că în fereastra Context Help, prin


apăsarea butonului sub forma unui semn de întrebare din partea stângă jos, se
deschide Help-ul principal, direct la informația care era afișată în acel moment în
fereastra Context Help, pentru a afla mai multe detalii legate de acel subiect.

Bibliografie:

 Curs ”Instrumentație Virtuală” – Facultatea Automatica si Calculatoare (UPB)


 Laborator ”Instrumentație Virtuală” – Departamentul Electronica Aplicata (UTC)
 ”Material suport pentru stagii de practică în domeniul dezvoltării software pentru
automatizări MEDIU DE DEZVOLTARE LabVIEW” (UTC)
 Manual “LabVIEW Basics 1” – National Instruments