Sunteți pe pagina 1din 243

1.

INTRODUCERE ÎN INSTRUMENTAŢIA VIRTUALĂ


•Ca si în cazul calculatoarelor si al sistemelor de operare, ideea
instrumentatiei virtuale s-a nascut în mintea unui tanar (James Trouchard),
pe cand era doctorand la University of Texas, in Austin USA, iar Hewlett-
Packard introducea pe piata un computer nou ce putea culege date din
masuratorile efectuate cu instrumente ale aceleasi firme.
•Trouchard a avut ideea ca in locul unui instrument gata facut, ce costa destul
de mult, sa realizeze instrumente pe care chiar utilizatorii sa le poata
ansambla in propriul calculator folosind o placa si un software.  Asa s-a
nascut Instrumentatia Virtuala si odata cu ea Compania National Instruments
pe care James Trouchard a fondat-o in 1976. Solutia propusa de Trouchard
permite astazi multor firme sa depaseaca cu usurinta decalaje tehnice şi
tehnologice, pentru eliminarea cărora ar fi necesare investiţii uriaşe. Există
un singur obstacol: creatorul, dar şi utilizatorul unui instrument virtual, nu
mai poate fi inginerul sau muncitorul anilor trecuţi.
• Instrumentele virtuale sunt combinații de elemente hardware și/sau software, utilizate
cu un PC, care au funcționalități similare instrumentelor tradiționale, clasice, de sine
stătătoare.
• Pe panoul frontal al unui instrument virtual, se vor găsi butoane, comutatoare, ecrane,
afisaje digitale, indicatoare grafice, e.t.c. cu acelasi aspect ca al instrumentelor clasice .
• Un instrument virtual este compus deci, dintr-o parte hardware si o parte software care
permite configurarea instrumentului dupa dorinta utilizatorului.
• Prin termenul de Instrumentaţie Virtuală se înţelege utilizarea unui computer, dotat cu
echipamente periferice de intrare şi ieşire specializate, pentru a simula caracteristicile şi
funcţionarea unui instrument sau sistem de măsurare, de testare sau de înregistrare a
datelor.
Instrumentele virtuale fac uz de traductoare si senzori pentru a intra în contact cu
mărimea fizică măsurată, de eventuale sisteme de condiţionare a semnalelor, precum şi
de circuite pentru conversia analog - digitală.
Diferenţa în raport cu sistemele de măsurare "clasice" este aceea că de aceasta dată toate
funcţiunile de prelucrare şi analiză a valorilor măsurate, de stocare a acestor informaţii şi
de transmitere a lor către utilizatorul uman sunt realizate de către computer şi nu de către
aparatura dedicată.
Aplicaţiile software înlocuiesc astfel componente estimate a reprezenta 80% din circuitele
unui aparat de măsurare sau testare specializat "clasic".
• Software-ul care realizează aceste funcţiuni posedă în majoritatea cazurilor o interfaţă
grafică având acelaşi aspect ca şi cel al panoului frontal al unui aparat de măsurare. Acesta
este motivul pentru care aplicaţiile respective sunt numite Instrumente Virtuale.
In sistemele de măsurare computerizate cu instrumente virtuale, natura mărimilor fizice
măsurate dictează doar configuraţia componentelor de genul traductoarelor şi în unele
cazuri a condiţionatoarelor de semnal. In aval de acestea, după convertorul analog - digital,
informaţia referitoare la valoarea mărimii măsurate este procesata doar prin intermediul
componentelor software.
• Dacă, de exemplu, un semnal de tip tensiune electrică necesită atât vizualizarea variaţiei în
timp cât şi determinarea spectrului de frecvenţe, utilizarea instrumentaţiei virtuale permite
folosirea aceluiaşi sistem de măsurare. Se înlocuieşte doar aplicaţia de prelucrare a
semnalului sau se construieşte o aplicaţie care să afişeze simultan, într-o fereastra unică,
ambele informaţii necesare. Mai mult, acelaşi sistem de măsurare, dar cu o aplicaţie
software diferita, poate fi utilizat ca voltmetru, ca instrument de stocare a datelor sau ca
sistem de avertizare.
• Apariţia instrumentelor virtuale a permis astfel ca mai multe aparate de măsurare sau
testare specializate sa poată fi înlocuite printr-o singură configuraţie hardware de sistem de
măsurare computerizat, completată apoi cu diverse aplicaţii software.
• De aici derivă unele dintre avantajele utilizării Instrumentaţiei Virtuale:
- flexibilitatea sporită a configuraţiilor sistemelor de măsurare;
- fiabilitatea crescută a componentelor;
- precizia crescută a prelucrării informaţiei;
- capacitatea de a efectua prelucrări de mai mare complexitate;
- costul mult redus în raport cu aparatele clasice.
• Aplicaţiile instrumentaţiei virtuale nu se rezumă doar la măsurarea de mărimi fizice
analogice. Rezidente în sisteme computerizate, instrumentele virtuale pot fi folosite
drept generatoare de semnale analogice, pot manipula bidirecţional semnale digitale
şi pot efectua operaţiuni de numărare/cronometrare sau de generare de trenuri de
impulsuri.
• Instrumentele virtuale pot transforma un computer în "centrul de comandă" al unei
reţele de zeci de aparate de măsura capabile sa comunice prin protocolul GPIB. Seturi
de instrumente virtuale specializate pot efectua funcţii de comandă a motoarelor pas
cu pas sau operaţii evoluate de prelucrare şi analiză a imaginilor sau sunetelor.
• Sistemele de instrumentaţie virtuală nu se rezumă astfel doar la a înlocui aparatele de
măsurare utilizate în aplicaţiile din laboratoarele de cercetare sau didactice, ci devin
unelte complexe şi puternice de monitorizare şi control ale proceselor industriale.
• Un sistem de instrumentaţie virtuală nu trebuie înţeles ca fiind majoritar
rezident într-un computer. In laboratoarele de cercetare se utilizează
îndeosebi plăci multifuncţionale de achiziţie de date montate în PC-uri,
conţinând multiplexoare şi convertoare A/D şi D/A. Sistemele de achiziţie
"Real Time" îşi îndeplinesc funcţiunile şi în timpul "căderilor" sistemului
de operare sau al resetărilor computerului gazdă.
• In multe categorii de sisteme distribuite, multiplexoarele şi convertoarele
au "migrat" din computer în zona condiţionatoarelor de semnal, însoţite
de o interfaţă serială. Computerul gestionează astfel o reţea de puncte
de măsurare, mult mai numeroase decât ar fi permis varianta sub forma
analogică.
Sistemele dedicate uzului industrial, din gama PXI, utilizează computere
de proces (controllere), având configuraţii şi caracteristici de funcţionare
specifice şi dispunînd de o întreagă gamă de posibilităţi de comunicaţie
ce includ protocoalele serial, Ethernet, SCSI, GPIB (IEEE 488), PCMCIA,
CAN şi DeviceNet.
• Facilităţile oferite de hardware-ul de achiziţie de date şi control de proces
nu ar putea fi puse în valoare fără existenţa unui software adecvat. În
acest sens se foloseşte mediul LabVIEW (LABoratory Virtual Instrument
Engineering Workbench) – un mediu de programare bazat pe limbajul de
programare graficǎ G, produs de Firma National Instruments (NI).
• Avantajul folosirii mediului de programare grafica LabVIEW în instrumentaţia virtuală constă
în abordarea în mediu unitar a dezvoltării aplicaţiilor pentru configuraţii hardware diverse şi
protocoale de comunicaţie dedicate interacţiunii cu procese (începând de la cele mai simple
pana la procese industriale de mare complexitate).
• Funcţiunile mediului de programare grafică LabVIEW de transmitere a informaţiei prin
intermediul diverselor protocoale de comunicaţie specifice Internet-ului vor face posibil un
salt calitativ în dezvoltarea utilizatorilor spre folosirea de laboratoare virtuale şi spre
monitorizarea şi comanda la distanţă a proceselor.
• În concluzie, se poate aprecia că Instrumentaţia Virtuală are, datorită flexibilităţii şi
versatilităţii sale, un potenţial imens pentru cei ce lucrează în domeniul educaţiei, ştiinţei şi
tehnologiei, indiferent de gradul lor de specializare sau de nivelul de calificare. Instrumentele
şi aparatele vor deveni din ce în ce mai ieftine şi mai performante, software-ul va putea fi
dezvoltat în masă, chiar de către programatori neprofesionişti, iar aplicaţiile realizate vor
avea un grad mare de accesibilitate datorită facilităţilor de comunicaţie existente.
• Astăzi, utilizatorul introduce o placa de achizitie date in computer si cu ajutorul soft-ului de
programare grafica isi configureaza instrumentul de masurare si in plus poate crea si cate
inregistratoare grafice doreste. Toata partea fizica a lantului de masurare aflandu-se pe o
placa controlata de microprocesorul computerului, utilizatorului nu-i ramane decat sa se
conecteze la traductoarele specifice marimii de masurat si sa stie sa manevreze un mouse.
Reprezentarea instrumentelor fizice se face pe monitorul computerului cu ajutorul
elementelor grafice existente in biblioteca limbajului de programare grafica.
Din punct de vedere al domeniului de utilizare, sistemele de instrumentaţie
virtuală pot fi clasificate în:
• sisteme pentru testare şi măsurări;
• sisteme de control automat al proceselor;
• sisteme pentru efectuarea de cercetări ştiinţifice.
Din punct de vedere al modului în care poate funcţiona un instrument virtual
există două variante:
• modul de lucru “live”, în care se configurează fizic echipamentul de măsurare,
cuplat la sistemul de calcul şi care achiziţionează date din procesul studiat,
urmat de procesul de analiză, interpretare şi afişare a rezultatelor;
• modul de lucru “not live” (simulare), în care se poate doar simula funcţionarea
echipamentului de măsurare asupra eşantioanelor unor semnale generate prin
mijloace software.
Exista doua posibilitati de a lucra cu instrumentatia virtuala:
• doresti sa-ti creezi singur instrumentele necesare si atunci trebuie sa cunosti
limbajul de programare grafica si sa dispui de acesta (necesarul de timp minim
pentru invatare ar fi de 30 de ore);
• doresti sa fii numai utilizator de instrumentatie virtuala, si atunci trebuie sa-ti
cumperi de la un dezvoltator de aplicatii un program executabil ce va face numai
ceea ce iti doresti.
Avantajele instrumentatiei virtuale față de instrumentele tradiționale:
• ocupa un spatiu mic (practic un computer si un monitor);
• poate fi cu elemente distribuite (pot masura in mai multe locuri odata);
• datele se pot transmite prin internet (laboratorul de masurare se poate afla
intr-un anume loc iar analiza rezultatelor se poate face in cu totul alta parte);
• instrumentele nu mai ocupa un spatiu fizic (o magazie) ci sunt stocate in
memoria computerului;
• flexibilitate maxima privind configurarea instrumentelor (oricand se poate
sterge un instrument din memorie si se poate face altul, se pot adauga
elemente de comanda sau indicatoare, canale sau memorie);
• dispar practic problemele legate de murdarirea comutatoarelor sau
imperfectiunea conexiunilor;
• costurile privind achizitia de aparate si intretinerea lor se reduc foarte mult,
tinand cont ca o singura placa multifunctionala de achizitie date, impreuna cu
softul aferent poate inlocui o multime de alte instrumente fizice dedicate;
• interfata grafica foarte prietenoasa cu utilizatorul;
• timpul relativ mic de invatare a limbajului de programare grafica;
• multimea de instrumente virtuale gata construite pentru a masura, a face
analiza semnalului, a-l prelucra si a-l transmite oriunde doreste utilizatorul;
Instrumentaţie Virtuală cu
LabVIEW
Laboratory Virtual Instruments
Engineering Workbench
• LabView este un limbaj de programare grafică (limbaj G) care foloseşte
diagrame bloc în loc de linii de text pentru a crea aplicaţii.
• Este destinat în special, construirii de aplicaţii pentru controlul şi achiziţia de
date, analiza acestora şi prezentarea rezultatelor
• LabView a fost dezvoltat de firma National Instruments, prima variantă a
programului apărând în anul 1986. În prezent s-a ajuns la versiunea a 8-a a
programului. Denumirea sa provine dintr-o prescurtare din limba engleză:
“Laboratory Virtual Instruments Engineering Workbench”.
• Noutatea adusă de LabView, comparativ cu limbajele de programare clasice
(Pascal, C,C++,BorlandC++), este rapiditatea programării datorită introducerii
unei interfeţe grafice mai intuitive.
• Mediile de programare grafică înlătură necesitatea cunoaşterii unui limbaj
de programare. În locul descrierii algoritmului de calcul sub forma unui set de
instrucţiuni în format text, într-un mediu de programare grafică algoritmul este
descris desenându-l sub forma unei scheme logice (organigramă, diagramă).
Dispare astfel necesitatea memorării unor nume de instrucţiuni şi a unor reguli
complicate de sintaxă, iar riscul de apariţie a erorilor de programare scade
drastic. Modul în care algoritmul este descris este astfel mult mai intuitiv, un
program putând fi înţeles mult mai uşor şi de către alţi programatori decât cel
care l-a conceput.
• LabVIEW este cel mai răspândit şi mai evoluat mediu de programare grafică.
• Deşi LabVIEW este un instrument foarte puternic de simulare, acesta este cel mai
adesea folosite pentru achiziția, analiza și prezentarea datelor de la diferite surse
externe, conținând în librăria sa, multe instrumente virtuale special dedicate
acestui scop.
• De exemplu LabVIEW poate comanda plăci de achiziție pug-in sau pe USB pentru
achiziția sau generarea semnalelor analogice și numerice.
• S-ar putea utiliza plăcile DAQ şi LabVIEW pentru a monitoriza temperatura, trimite
semnalele de la un sistem extern, sau determinarea frecvenţei unui semnal
necunoscut.
• LabView permite achiziţia semnalelor de la o varietate de echipamente. Se pot
achiziţiona date de la instrumente GPIB, seriale, Ethernet, PXI şi VXI, folosind
driverele incluse. Există posibilitatea comunicării cu mai mult de 1400 instrumente
aparţinând a 150 de producători, folosind driverele de comunicaţie LabView.
Programul oferă performanţă şi portabilitate ridicate.
• Driverele de comunicaţie simplifică controlul instrumentelor şi timpul de
dezvolatare a noi aplicaţii, eliminând necesitatea de a învăţa protocoale de
programare pentru fiecare instrument în parte. Multe drivere folosesc Visual
Instrument Software Architecture (VISA) pentru a comunica cu o gamă de bus-uri de
comunicaţie, cum ar fi GPIB sau serial, folosind acelaşi cod LabView. Indiferent pe
ce tip de bus este instrumentul, driverele VISA preiau controlul protocoalelor de
comunicare respective.
Achiziție, Analiză și Prezentare

Aproape toate aplicațiile de măsurare, testare și control,


pot fi împărțite în 3 mari componente: capacitatea de
achiziție, analiză și prezentare a datelor. LabVIEW este cel
mai puternic și mai simplu instrument pentru achiziția,
analiza și prezentarea datelor din lumea reală.
Achiziția cu LabVIEW
LabVIEW poate achiziționa date
utilizând următoarele dispozitive și
multe altele:
• GPIB, Serial, Ethernet, VXI, PXI
Instruments
• Data Acquisition (DAQ)
LabVIEW este strâns integrat
cu toate componentele
• PCI eXtensions for Instrumentation (PXI)
hardware NI, și în plus se • Image Acquisition (IMAQ)
poate conecta la mii de
dispozitive I/O de la alte sute • Motion Control
de furnizori. • Real-Time (RT) PXI
• PLC
• PDA
• Instrumente modulare
Tipuri de magistrale de proces, pentru
interconectarea instrumentelor
programabile, cu un sistem de calcul
• GPIB (General Purpose Interface Bus - magistrală de interfaţare de uz general) este
specializată pentru comunicaţie cu instrumente programabile. Este standardul cel mai
utilizat pentru controlul instrumentelor programabile de catre sistemele de calcul.
Rolul dispozitivelor GPIB poate fi de a trimite mesaje, de a primi mesaje si/sau de a
monitoriza comunicatiile pe retea. Este disponibilă pentru diverse platforme (PC, IBM,
MacIntosh, etc.) şi oferă o rată de transfer de 1 Mbyte/secundă. Protocolul de
comunicaţie este specificat de standardul industrial IEEE-488 (protocol pe 8 biţi,
comenzi tip ASCII, maximum 14 instrumente aflate la cel mult 20m). O dezvoltare
ulterioară, HS-488, a crescut rata de transfer la 8 Mbytes/secundă;
• RS-232, RS-422, RS-485 sunt utilizate în special la sisteme personale de calcul. Sunt
destinate comunicaţiilor seriale sincrone/asincrone între instrumente, oferind o
imunitate ridicată la zgomotul din mediul industrial. Dezavantajul major este rata de
transfer redusă (sute de kbits/secundă). Protocolul de comunicare poate fi ASCII sau
un protocol special al instrumentelor ce se interconectează. Ceea ce le diferenţiază
este distanţa de interconexiune (de la 15m la RS-232, la 1200m la RS-485), care este
mărită prin amplificări suplimentare pe intrări/ieşiri. Interfaţa RS-485 permite legături
multi-punct (“daisychain”), deci economii importante de cablu;
• SCXI (Signal Conditioning eXtensions for Instruments): reprezintă o platformă de
înaltă performanță pentru condiționarea sau direcționarea semnalelor din sistemele
de măsurare sau automatizare. Utilizată pentru măsurări directe sau prin
intermediul senzorilor, pentru generarea de semnale în tensiune sau curent, pentru
manipularea semnalelor digitale sau pentru direcționarea unor semnale, gama de
produse SCXI oferă o platformă unică, integrată, ce satisface toate necesitile. Un
sistem SCXI constă din module multicanal de condiționare instalate în unul sau mai
multe șasiuri. Șasiul (sau unul dintre șasiurile sistemului) este conectat la o placă
de achiziie de date. Aceste module, montate sub formă de “rack” (dulap cu sertare
de conexiuni modulare), sunt utilizate deci, la condiţionarea semnalului. La intrare,
se admit semnale provenite de la traductoare, cum ar fi: termocupluri, termistoare,
mărci tensometrice etc, iar la ieşire se obţin semnale permit efectuarea analogice
(curenţi sau tensiuni) sau semnale numerice. Se utilizează module de filtrare,
liniarizare, izolare galvanică, ieşiri de putere, etc.; Condiionatoarele de semnal
SCXI au un design integrat care simplifică instalarea și configurarea maximizând
performanele. Modulele SCXI măsurărilor cu o gamă largă de senzori și tipuri de
semnale, permițând o paletă largă de combinații pentru formarea unui sistem de
măsurare.
• PXI (extensie PCI pentru instrumentatie): PXI reprezinta o platforma pentru sisteme de masurare si
automatizare, bazata pe PC. Instrumentatia  modulara PXI profita de avantajele magistralei de mare viteza 
PCI (Peripheral Component Interconnect), care reprezinta standardul de facto ce dirijeaza proiectarea in
domeniul calculatoarelor PC, atat ca hardware cat si ca software. In consecinta, utilizatorii de PXI pot sa
beneficieze de toate avantajele PCI in cadrul uneri arhitecturi ce adauga caracteristici mecanice, electrice si
de software, potrivite pentru aplicatiile de masura, achizitie de date si automatizari industriale. Bazată in
intregime pe un stadard industrial deschis, instrumentatia modulara PXI reprezinta o solutie eficace,
deoarece combina arhitectura electrica de mare viteza a PCI cu o carcasa industriala de înalta fiabilitate,
functii de sincronizare si temporizare incorporate si deplina interoperabilitate cu CompactPCI. Dimensiunea
redusa a sistemului PXI este ideala pentru o larga varietate de aplicatii portabile, cu montare pe birou sau in
rack, pentru testare, masuratori, culegere de date si automatizari industriale.
În sistemul PXI exista șasiuri (cu 4, 8 sau 18 sloturi), controlere, placi de achizitie de date, placi de achizitie
de date in timp real, surse de semnal, module I/O digitale, placi de achizitie de semnal dinamic, numaratoare/
temporizatoare de 32 biti, instrumente dedicate, comutatoare, placi de achizitie si prelucrare de imagine,
placi de control al miscarii, interfete de comunicare seriale, CAN, DeviceNet, Ethernet, GPIB, etc.
• VXI (VME eXtension for Instrumentation, unde VME reprezintă VESA Module Eurocard) reprezintă un
standard de instrumentaţie ale cărui baze au fost puse încă din 1987 şi are ca obiectiv creşterea
interoperabilităţii diverselor instrumente. Structura sa modulară permite o integrare atât din punct de vedere
electronic, cât şi mecanic, conferindu-i denumirea de “standard pentru instrument pe cartelă”. Specificaţiile
VXI grupează norma IEEE-488 şi norma VME, prima remarcăndu-se prin compatibilitatea între constructori
diferiţi, iar cea de-a doua prin rapiditate.
Plăcii GPIB ale firmei NI

Sistem GPIB tipic


Analiză cu LabVIEW
LabVIEW include următoarele instrumente cu ajutorul cărora pot fi
analizate datele:
• Mai mult de 400 de funcţii de analiza măsurării pentru: Ecuatii
Diferentiale, Optimizare, Curbe, Calcul, Algebra Liniara,
Statistică, etc.
• 12 noi VI-uri Express special proiectate pentru analiza
măsurării, inclusiv filtrare și analiză spectrală.
• VI-uri pentru procesarea semnalelor (Filtrare, Ferestruire,
Analiză Armonică, Analiză spectrală, e.t.c.).

O analiză intensă a
măsurării este realizată
în mediul de dezvoltare
LabVIEW.
Prezentare cu LabVIEW
LabVIEW include următoarele
instrumente utilizate pentru
prezentarea datelor:
• On your machine — Graphs, Charts,
Tables, Gauges, Meters, Tanks, 3D
Controls, Picture Control, 3D Graphs
Prezentarea cu (Windows Only), Report Generation
(Windows Only)
LabVIEW poate • Over the Internet — Web Publishing
fi facuta pe PC Tools, Datasocket (Windows Only),
sau printr-o TCP/IP, VI Server, Remote Panels,
Email
reţea.
LabVIEW Everywhere
Sensor
Embedded
(FPGA)
Handheld
Wireless

Networked I/O

PC Boards

Industrial Computer (PXI)

Tektronix Open Windows


Oscilloscopes

PC, Mac, Linux, Sun

Workstation
Fapte istorice
•1983 – începe proiectul LabVIEW
•1986 –LabVIEW pentru Macintosh
•1990 –LabVIEW 2.0 și 2 brevete
•1992 –LabVIEW pentru Windows și Sun
•1993 –LAbVIEW 3.0
•1994 – LabVIEW pentru Windows NT și 2 noi brevete
•1995- 2000 – LabVIEW pentru Windows 95/98, LabVIEW
5.0
•2001 – LabVIEW 6i pentru Windows 2000/NT/ME
•2003– LabVIEW 7.0 pentru Windows XP
•2006 - LabVIEW 8.0 pentru Windows XP
•2009- LabVIEW 2009 pentru Windows 7
2. Introducere în LabVIEW
SUBIECTE
A. LabVIEW
B. Mediul LabVIEW
C. Panoul Frontal
D. Diagrama Bloc
E. Programarea Fluxului de Date
F. LabVIEW Help
G. Depanarea unui VI
A. Instrumente Virtuale (VI)
Panou Frontal
• Controale = Intrări
• Indicatoare = Ieşiri

Diagrama Bloc
• “Program” ce însoţeşte
panoul frontal
• Componentele sunt legate
împreună
•Aplicatiile (programele) realizate in LabVIEW poarta denumirea de
Instrumente Virtuale (în engleza, Virtual Instruments, prescurtat VI).
Denumirea provine de la faptul ca, in primele sale versiuni, LabVIEW a fost
strict dedicat pentru realizarea unor programe de monitorizare a proceselor.
Programele respective inlocuiau o serie de aparate si instrumente electronice -
de unde si motto-ul corporatiei National Instruments: The software is the
instrument – primind astfel denumirea de Instrumente Virtuale.
•Fiecare VI conţine 3 părţi principale:
1. Panoul Frontal – permite interacţionarea utilizatorului cu VI-ul.
2. Diagrama Bloc – Codul care controlează programul.
3. Icoana/Conectorul – Mijloc de conectare a VI-ului cu alte VI-uri.
•Utilizatorul poate controla programul, poate modica intrările şi poate urmării
updatarea datelor în timp real.
•Fiecare control sau indicator al panoului frontal are un terminal corespunzător în
diagrama bloc. Când un VI rulează, valorile controalelor trec în diagrama bloc,
unde sunt utilizate în funcţionarea diagramei, iar rezultatele sunt trecute în alte
funcţii sau indicatoare.
B. Mediul LabVIEW
Creating a new VI

To open a blank VI
• Select File»New VI
• Click the arrow on the
New button and
select Blank VI

To open the New


dialog box
• Select File»New
• Click the New button
Panoul Frontal (PF) al VI-ului
Uneltele (PF) Icoană

Control
Boolean Legenda
Graficului

Indicator
Grafic

Plot Legenda
Legend Scalei
Diagrama Bloc (DB) a VI-
ului
Uneltele
DB Funcţia
Divide

SubVI

Terminalul
Grafic

Fire
de date

Structură Constantă Funcţia Terminalul


While Loop Numerică Timing Control Boolean
Front Panel and Block Diagram
Toolbars
Run button Font ring
Continuous Run Alignment ring
button Distribution ring
Abort button Resize ring
Pause/Continue Additional Buttons onReorder ring
button the Block Diagram Context Help Button
Warning indicator Toolbar
• Execution Highlighting
Enter button button
• Step Into button
Broken Run button
• Step Over button
• Step Out button
Tools Palette
• LabVIEW automatically selects the tool needed
• Available on the front panel and the block diagram
• A tool is a special operating mode of the mouse
cursor
• Use the tools to operate and modify front panel
and
block diagram objects
• To show the tools palette, select
Window»Show Tools Palette
Front Panel − Controls
Palette

Controls Palette
Contains the most commonly used controls

All Controls Palette


Shows all controls
Block Diagram − Functions Palette

Functions Palette
Contains the Express VIs (interactive VIs
with configurable dialog page) and the
most commonly used functions
All Functions Palette
Shows all functions
Searching for Controls, VIs, and
Functions
• Press the search
button to perform
text searches of the
palettes
• Click and drag an
item from the search
window to the block
diagram or
double-click an item
to
open the owning
palette
Shortcut Menus for Front Panel
Objects Right-click the digital
display to access its
shortcut menu
Right-click the label
to access its shortcut
menu
C. Crearea unui Panou Frontal
Panoul Frontal se construiește cu controale (intrări)
și cu indicatoare (ieșiri)

Indicato
r
Etichete Numeri
c
Butoane pentru
incrementare Control
Control Indicator Numeric
Boolean Boolean
Shortcut Menus for Front Panel
Objects Right-click the digital
display to access its
shortcut menu
Right-click the label
to access its shortcut
menu
Property Page
Right-click a
control or indicator
on the front panel
and select
Properties from the
shortcut menu to
access the
property dialog box
for that object
D. Crearea unei Diagrame Bloc

Panou Frontal Diagrama Bloc


Control Indicator
Terminals Terminals

Wires Nodes
VI-uri Express, VI-uri Standard și
Funcţii
• VI-uri Expres : VI-uri interactive cu pagină dialog configurabilă, ce permite
utilizatorului modificarea funcționalității VI-ului expres.
• VI-uri Standard : VI-uri modularizate realizate prin fire de legătură. Au PF și
DB
• Funcţii: elemente fundamentale de operare în LabVIEW; Nu au PF sau DB
Funcţie

VI Expres VI Standard
Elementele utilizate la realizarea
diagramei
•Terminale
bloc
•Fire
•Noduri
Terminalele reprezintă „porţi” prin intermediul cărora se realizează
transferul datelor:
-între panoul frontal şi diagrama bloc (bidirectional);
-între nodurile diagramei bloc (unidirectional).
Există două tipuri de terminale :
-terminale sursă;
-terminale destinaţie.
Firele, definesc şi reprezintă grafic, fluxul datelor (între noduri se
realizează schimbul de informaţii) în diagrama bloc. Fluxul datelor
este de la terminalele sursă spre terminalele destinaţie. Firele
codifică prin culoare şi stilul liniei tipul datelor transmise;
poziţionand unealta de interconectare deasupra unui fir, care
realizează o legătură validă, se obţine în fereastra de asistenţă
descrierea tipului de dată care se transmite pe acea cale.
Nodurile sunt elemente de execuţie din programul G. Ele corespund
operatorilor, funcţiilor predefinite, instrucţiunilor şi subrutinelor
realizate de utilizator din limbajele de programere bazate pe text.
Există patru tipuri de noduri:
-funcţii
-subIV
-codul interfeţei nodurilor (CIN)
-structuri
Funcţiile sunt elemente constructive ale nodurilor care cresc
performanţa operaţiilor elementare: de exemplu adunarea numerelor.
SubIV sunt instrumente virtuale create anterior şi care se introduc în
diagrama bloc a altor instrumente.
CIN reprezintă interfaţa dintre diagrama bloc şi codurile scrise în
limbajul C.
Structurile sunt elemente de control ale programului. Ele controlează
transferul datelor în interiorul instrumentului virtual.
Block Diagram Nodes
Icon Expandable Node
Expanded Node

• Function Generator VI
• Same VI, viewed three different ways
• Yellow field designates a standard VI
• Blue field designates an Express VI
Block Diagram Terminals
• Terminals are entry and exit
ports that exchange
information between the
panel and diagram
• Terminals are analogous to
parameters and constants
in text-based programming
languages
• Right-click and toggle View
As Icon to change the icon
view
Legături
(fire) în DB

Albastru
Dynamic
Wiring Techniques
Hot Spot
• Automatic Wiring
• Use Context Help Window when wiring
• Right-click wire and select Clean Up Wire
• Tip Strips
• Automatic wire routing
• Right-click terminals
and select Visible
Items»Terminals
View the terminal connections to a
function
Moduri de ralizare de legături – DB
Wiring “Hot Spot” Click To Select Wires

Use Automatic Clean Up Wiring


Wire Routing
•Exercise: Acquiring a Signal VI
Objective: Explore the LabVIEW environment by creating a VI that
generates a signal and displays it on the front panel.
Tipuri de date în LabVIEW

•Date numerice:
– Întregi
– Numere în virgulă mobilă
•Date tip string (caractere alfanumerice)
•Date Booleene
•Date tip forme de undă
Date numerice întregi
Meniurile proprii ale elementelor de control sau indicatoare numerice contin o
optiune specifica, Representation, cu ajutorul careia se specifica modul in
care valoarea numerica respectiva este stocata in memorie.
•Întregi cu semn
– 32-bit (I32): de la -2,147,483,648 to 2,147,483,647
– 16-bit (I16): de la -32,768 to 32,767
– 8-bit (I8): de la -128 to 127
•Întregi fără semn
– 32-bit (U32): de la 0 to 4,294,967,295
– 16-bit (U16): de la 0 to 65,536
– 8-bit (U8): de la 0 to 256
Date numerice în virgulă mobilă
•Număr real în virgulă mobilă:
– Precizie extinsă [EXT]: –1.19e+4932 to 1.19e+4932
– Dublă precizie [DBL]: –1.79e+308 to 1.79e+308
– Simplă precizie [SGL]: –3.40e+38 to 3.40e+38
•Număr complex în virgulă mobilă:
– Numărul complex în virgulă mobilă are o reprezentare echivalentă ca
și numerele reale în virgulă mobilă. Singura diferență este că
numărul complex are o parte reală și una imaginară.
CXT (complex extended) = numar complex cu precizie extinsa (32 octeti)
CDB (complex double) = numar complex cu precizie dubla (16 octeti)
CSG (complex single) = numar complex cu precizie simpla (8 octeti)
Date de tip string
•Un string este o secvență de caractere ASCII.
•Câteva dintre multele aplicații ale stringurilor sunt:
−Creare unui simplu mesaj text.
−Trecerea datelor numerice prin instrumente ca și caractere string și
apoi convertirea stringurilor în numere numerice.
−Înmagazinarea datelor numerice pe disc. Pentru memorarea
numerelor numerice într-un fișier ASCII, trebuie mai întâi convertite
numerele numerice în stringuri.
−Cutii de dialog, pentru diferitele atenționări ale utilizatorului.
•Există următoarele tipuri de elemente de tip string:
−Control String
−Indicator String
−Funcții String
Date Booleene
•Datele Booleene sunt date de tip logic. Acestea au două valori:
ADEVĂRAT și FALS. Datele Booleene sunt reprezentate prin două
stări ON și OFF.
•Un control Boolean din panoul frontal al unui VI este fie un buton
fie un comutator (switch). Un indicator Boolean din panoul frontal
al unui VI este un LED.
•Butoanele Booleene au asociate mai multe funcții logice. Există
șase moduri de operare al acestora.
1.Switch when pressed (Comută când este apăsat)
2.Switch when released (Comută când este eliberat)
3.Switch until released (Comută până când este eliberat)
4.Latch when pressed (Închide când este apăsat)
5.Latch when released (Închide când este eliberat)
6.Latch until released (Închide până când este eliberat)
Change state on a button press.
Remain there until another button
Switch When Pressedpress.
Change state on a button release.
Remain there until another button
Switch When Released
release.
Change state on a button press.
Change back when the button is
Switch Until Released
released.
Change state on a button press.
Latch When Pressed Change back when the control is read
by LabVIEW.
Latch When ReleasedChange state on a button release.
Change back when the control is read
by LabVIEW.
Latch Until Released
Change state on a button press.
Change back when released and read
by LabVIEW.
E. Programarea fluxului de date
• DB este executată în
funcţie de fluxul de date

• Nodurile sunt executate


când datele sunt
disponibile la toate
intrările terminalelor

• Nodurile alimentează cu
date toate terminalele
de ieşire
Exercise: Express Filter VI
Objective: Explore the data flow of an example VI.
F. LabVIEW Documentation:
Context
•To display theHelp
Context Help window, select
Help»Show Context Help, press the <Ctrl-H> keys, or
press the Show Context Help Window button in the
toolbar
•Move cursor over object
to display help
•Connections:
Required – bold
Recommended – normal
Optional - dimmed

Simple/Detailed Context Help Lock Help


More Help
LabVIEW Help
• Click the More Help button in the Context Help window
• Select Help»VI, Function, & How-To Help
• Click the sentence Click here for more help in the
Context Help window.

Contains detailed descriptions of most palettes, menus,


tools, VIs, and functions, step-by-step instructions for
using LabVIEW features, links to the LabVIEW Tutorial,
PDF versions of all the LabVIEW manuals and Application
Notes, and technical support resources.
Exercițiu: Convert °C în °F
Exercițiu: Generarea unui semnal și afișarea datelor într-un
tabel
Obiectiv: To build a VI that generates a signal, reduces the number
of samples in the signal, and displays the resulting data in a table on
the front panel.
G. Tehnici de
reparare
• Găsirea erorilor
Clic în butonul Run întrerupt
Fereastra va arăta erorile apărute
• Sublinierea execuţiei
Clic în butonul Execution Highlighting; fluxul de
date este animat utilizând baloane. Valorile sunt
afişate pe fire.
• Probe
Clic-dreapta pe un fir pentru afişarea probei şi a
datelor ce curg prin secţiunea respectivă de fir.
Se poate de asemenea selecta unealta Probe din
paleta cu unelte, iar apoi se va da clic pe fir
Debugging Techniques

Breakpoints
Right-click on wire and select Set Breakpoint;
pause
execution at the breakpoint.
Conditional Probe
Combination of a breakpoint and a probe.
Right-click on
wire and select custom probe.
Debugging Techniques
Step Into, Over, and Out buttons for Single
Stepping
Click on Step Into button to enable single stepping
Once Single Stepping has begun, the button steps
into nodes

Click on Step Over button to enable single stepping


or to step over nodes

Click on Step Out button to step out of nodes


Summary
•Virtual instruments (VIs) have three main parts — the front panel,
the block diagram, and the icon and connector pane
•The front panel is the user interface of a LabVIEW program and the
block diagram is the executable code
•The block diagram contains the graphical source code composed of
nodes, terminals, and wires
•Use Express VIs, standard VIs and functions on the block diagram
to create your measurement code. For the most common
requirements, use Express VIs with interactive configuration
dialogs to define your application.
•Floating Palettes: Tools Palette, Controls Palette (only when Front
Panel Window is active), and Functions Palette (only when Block
Diagram Window is active)
•There are help utilities including the Context Help Window and
LabVIEW Help
Summary
• Place controls (inputs) and indicators (outputs) in the front
panel window
• Use the Operating tool to manipulate panel objects. Use the
Positioning tool to select, move, and resize panel objects. Use
the Wiring tool to connect diagram objects
• Control terminals have thicker borders than indicator
terminals
• All front panel objects have property pages and shortcut
menus
• Wiring is the mechanism to control dataflow and produce
LabVIEW programs
• Broken Run arrow means a nonexecutable VI
• Various debugging tools and options available such as setting
probes and breakpoints, execution highlighting, and single
stepping
Tips
• Common keyboard shortcuts
Windows Sun Linux MacOS
<Ctrl-R> <♦-R> <M-R> <-R> Run a VI
<Ctrl-F> <♦-F> <M-F> <-F> Find object
<Ctrl-H> <♦-H> <M-H> <-H> Activate Context Help window
<Ctrl-B> <♦-B> <M-B> <-B> Remove all broken wires
<Ctrl-W> <♦-W> <M-W> <-W> Close the active window
<Ctrl-E> <♦-E> <M-E> <-E> Toggle btwn Diagram/Panel Window

• Access Tools Palette with <shift>-right-click


• Increment/Decrement faster using <shift> key
• Tools»Options selection — set preferences in LabVIEW
• VI Properties (File menu)
3. Programare Modulară

SUBIECTE
A. SubVI-uri
B. Panoul Icoană și Conector
C. Utilizarea SubVI-urilor
D. Crearea unui SubVI dintr-o secțiune a unui VI
A. Ierarhia LabVIEW

SubVI
SubVI-uri
•După construirea unui VI şi crearea icoanei şi
conectorului său, acesta poate fi utilizat într-
un alt VI. Un VI dintr-un alt VI se numeste
subVI. Un subVI corespunde unei subrutine
într-un limbaj de programare pe bază de text.
• Avantaje
– Modular
– Uşor de reparat
– Nu trebuie recreat codul
– Necesită mai puţină memorie
Function Pseudo Code Calling Program Pseudo
function average (in1, in2, Code
out) main
{ {
out = (in1 + in2)/2.0; average (point1, point2,
} pointavg)
}
SubVI Block Diagram
Calling VI Block Diagram
Nodurile în DB

SubVI-urile din DB se pot vedea ca icoane sau ca noduri expandabile. Cele două moduri,
depind de preferințele utilizatorului, nemodificându-se funcționalitatea subVI-ului
B. Icoana şi Conectorul
Fiecare VI afişază o icoană în colţul din dreapta sus a PF şi a DB. O icoană este o reprezentare
grafică a unui VI. Ea poate conţine text, imagini sau combinaţii de ambele. Icoana identifică subVI-ul
dintr-o DB a unui VI.

ICOANA

Terminale
• O icoană reprezintă un VI într-o altă DB

• Un conector arată terminalele disponibile


pentru transferul de date
CONECTOR
Sunt mai multe modele de conectori. Printr-un clic-dreapta în conector se poate selecta
modelul din meniul Patterns. Se pot atribui controalelor şi indicatoarelor din PF,
terminalelor conectorului.
Paşi pentru crearea unui SubVI
•Crearea Icoanei
•Crearea Conectorului
•Asignarea terminalelor
•Salvarea VI-ului
•Inserarea VI-ului într-un VI de nivel
superior
SubVI Example –
Calculating
• A VI within anotherSlope
VI is called a subVI
• To use a VI as a subVI, create an icon and a connector
pane after building the front panel and block diagram
Crearea Icoanei
•Icon: graphical representation of a VI
• Clic-dreapta în icoana DB sau a PF și selectare Edit Icon

Default Icon Create a custom


icon
Crearea Conectorului
Clic dreapta în panoul icoană (doar în PF)
Asignarea Terminalelor
C. Inserarea subVI-ului într-un VI de
nivel superior
Accesarea subVI-ului
Functions >>All Functions >> Select a VI
Sau
Tragerea icoanei cu mousul în DB dorită
Exercise: Thermometer VI
Objective: To build a VI using the Convert C to F
subVI to read a temperature from the DAQ Signal
Accessory in Celsius or Fahrenheit.

•The sensor returns a voltage proportional to


temperature. For example, if the temperature is 23 °C,
the sensor output voltage is 0.23 V. The sensor is
connected to Channel 0 of Device 1. Device 1 is the
DAQ device. On some systems, the DAQ device may
have another device number.
D. Opțiuni de creare a subVI-urilor
•Crearea unui subVI dintr-o secțiune a unui VI
•Se îngrădește aria dorită a fi convertită în subVI
•Select Create SubVI from the Edit Menu
Summary
• VIs can be used as subVIs after you make the icon
and connector
• Icon created using Icon Editor
• Connector defined by choosing number of terminals
• Load subVIs using the Select a VI option in the All
Functions palette or dragging the icon onto a new
diagram
• Online help for subVIs using the Show Context Help
option
• Descriptions document functionality
• Use Create SubVI feature to easily modularize the
block diagram
4. Bucle de control și regiștri de
transfer
A. Bucla While
B. Bucla For
C. Regiștri de transfer
A. Bucla While
Similar comportarii unei bucle Do sau o buclă Repeat-
Until (=repeta pana cand) în cadrul limbajelor de
programare bazate pe text, o buclă While execută o
subdiagramă până când este întâlnită o condiție.
1. Selectare buclă While 2. Înlănțuirea codului a fi repetat

3. Adăugarea de noduri suplimentare și apoi realizarea legăturilor


Do

(Execută diagrama
Terminal din interiorul buclei)
iterație
While Condition is TRUE

Terminal condiționare
Selectarea condițiilor buclei
•Clic dreapta în terminalul condiționare pentru definirea opririi buclei
•Pe marginile buclei se pot crea regiștri de deplasare care transferă datele de la o
iterație la următoarea

Terminal iterație Terminal condiționare


Structure Tunnels
• Tunnels feed data into and out of structures.
•The tunnel is a block that appears on the border; the
color of the block is related to the data type wired to
the tunnel.
• When a tunnel passes data into a loop, the loop
executes
only after data arrive at the
tunnel.
•Data pass out of a loop after
the loop terminates.
Exemple de bucle While
În diagrama bloc din figură,
bucla While este executată
până când ieșirea funcției
de multiplicare este mai
mare sau egală cu 5, iar
controlul Enable este
Adevărat (True). Funcția ȘI
(AND) returnează la ieșire
valoarea True doar dacă
cele două intrări sunt True.
Altfel ieșirea este False.
•VI-ul din figura de mai jos generează numere
aleatoare, până când numărul generat corespunde
cu numărul specificat. Terminalul iteratie
înregistrează numărul de numere aleatoare
generate, până când apare numărul specificat.
Următorul VI, va simula aruncarea a două zaruri și va
determina numărul de aruncări necesare până cele două
zaruri corespund.
B. Bucla For
O buclă For execută o subdiagramă de un număr de ori,
număr specificat de terminalul de numărare N.
• Plasaţi bucla For în DB selectând-o din paleta Structs & Constants
aflată în meniul Functions.
• O buclă For este un element redimensionabil.
• Ea execută diagrama din interiorul său de un număr predeterminat
de ori.
• Bucla For are două terminale: terminalul de numărare N (un
terminal de intrare) şi terminalul de iterare i (un terminal de
ieşire). Terminalul de numărare arată de câte ori se execută bucla.
Terminalul de iteraţie arată de câte ori a fost executată bucla.
• Pe marginile buclei se pot crea regiștri de deplasare care transferă
datele de la o iterație la următoarea

Terminalul de numărare
(terminal de intrare)

Terminal iterație
(terminal de ieșire)
Timing Functions
Wait Until Next ms Multiple

Wait (ms)

Time Delay
Numeric Conversion
• Numerics default to double-precision (8 bytes) or
long integer
(4 bytes)
• LabVIEW automatically converts to different
representations
• For Loop count terminal always converts to a long
integer
• Gray coercion dot on terminal indicates conversion
Numeric Conversion
• LabVIEW chooses the representation that uses
more bits.
• If the number of bits is the same,
LabVIEW chooses unsigned over signed.
• To choose the representation,
right-click on the terminal and
select Representation.

• When LabVIEW converts floating-point numerics


to integers, it rounds to the nearest integer.
LabVIEW rounds x.5 to the nearest even integer.

For example, LabVIEW rounds 2.5 to 2 and 3.5


to 4.
Exercise: Timed Temperature VI
Objective: To read a temperature once every second for one
minute.
C. Regiștrii de transfer
• Registrii de transfer sunt componente ale structurilor repetitive
ce pot fi utilizate pentru transferul unor valori intre doua sau
mai multe iteratii succesive ale structurii.
Pentru a adauga un registru de transfer unei structuri repetitive
(bucla For sau While), se selecteaza optiunea Add Shift
Register din meniul propriu al structurii. 
• Un registru de transfer contine doua terminale (stang si drept)
dispuse pe conturul structurii.
• O valoare conectata la terminalul drept al registrului va "apare" in
terminalul stang la iteratia urmatoare. Cu alte cuvinte, terminalul
stang introduce in iteratia curenta valoarea ce a fost transmisa la
terminalul drept in iteratia anterioara.
• La executarea primei iteratii a unei bucle, nu exista inca nici un
transfer efectuat de catre registru intre cele doua terminale ale
sale. Terminalul stang al registrului nu a fost inca "alimentat" cu o
valoare din iteratia precedenta. Pentru a se putea efectua
extragerea unei valori din terminalul stang la prima iteratie, se
conecteaza la acest terminal o valoare din exteriorul buclei. Se
spune ca registrul de transfer se initializeaza.
•Terminalul stang al unui registru de transfer poate
fi dimensionat, capatand astfel mai multe
componente. Intr-o astfel de situatie, valoarea
transferata din iteratia anterioara se afla in
componenta superioara. De sus in jos, fiecare
componenta contine cate o valoare provenita
dintr-o iteratie mai indepartata.
•Dupa executarea ultimei iteratii a buclei, din
terminalul drept al registrului se poate extrage
ultima valoare transferata acestuia.
•O structura repetitiva poate contine mai multi
registri de transfer, fiecare cu una sau mai multe
componente ale terminalului stang si fiecare
transferand intre iteratii valori de diverse tipuri. 
•VI-ul din figura de mai jos folosește registrii de deplasare si o bucla For, pentru a
accesa valorile din repetarile anterioare. Indicatorul X(i) afiseaza valoarea curenta,
indicatorul X(i-1) afiseaza valoarea penultimei iteratii, indicatorul X(i-2) afiseaza o
valoare cu doua iteratii in urma, si asa mai departe.
VI-ul din figura de mai jos folosește registrii de deplasare
si o bucla While, ce simulează un semafor
Feedback Nodes
•Appears automatically in a For Loop or While
Loop if you wire the output of a subVI,
function, or group of subVIs and functions to
the input of that same VI, function, or group.
•Stores data when the loop completes an
iteration, sends that value to the next iteration
of the loop, and transfers any data type
Feedback Node
• Wire from output to
input to automatically
create a feedback node
<OR>
• Place a feedback node
from the
Functions»Structures
palette
Initialized Shift Registers &
Feedback Nodes

Output = 5 Output = 5

Run Once VI stops execution Run


Again

Output = 5 Output = 5
Uninitialized Shift Registers &
Feedback Nodes

Output = 4 Output = 8

Run Once VI stops execution Run


Again

Output = 4 Output = 8
Exercise: Accessing Previous Data
Objective: To observe the use of shift registers and feedback
nodes to hold data from previous iterations of a For Loop.
• Revise the shift register to display the last three iterations of the For
Loop data, as shown in the following block diagram.
Summary
• Two structures to repeat execution: While Loop and
For Loop
• Loop timing controlled using Wait Until Next ms
Multiple function, the Wait (ms) function, or the
Time Delay Express VI.
• Coercion dots appear where LabVIEW coerces a
numeric representation of one terminal to match the
numeric representation of another terminal
• Feedback nodes and shift registers transfer data
values from one iteration to the next
• Use shift registers only when more than one past
iteration is needed
5. Tablouri (Arrays)

• TOPICS
• Introduction to Arrays
• Auto Indexing Arrays
• Array Functions
• Polymorphism
• Spre deosebire de elementele scalare, care reprezentau o singura valoare, de un anumit tip (numeric, boolean,
alfanumeric), elementele vectoriale (Array) pot contine, intr-o maniera ordonata, mai multe valori de acelasi tip.
• Un tablou este o colecţie de elemente ale datelor care sunt toate de acelaşi tip.
• Un tablou are una sau mai multe dimensiuni şi până la 2^31 – 1 de elemente pe dimensiune, sau cât permite memoria.
• Tablourile, în LabVIEW, pot fi de orice tip: numerice, Booleane, tip cale, stringuri, unde, și tip clustere (exceptând şiruri,
tabele sau grafice).
• Se poate accesa fiecare element al tabloului prin index-ul său. Index-ul este în gama (0, N-1) unde N este numărul
elementelor din tablou. Tabloul unidimensional (1D) arătat mai jos ilustrează această structură. De notat că primul
element are index-ul 0, al doilea element are index-ul 1, etc..

Un tablou bidimensional (2D)


necesită doi indici pentru
localizarea unui element, un indice
coloană şi un indice linie, amândoi
pornind de la zero.
Controale și indicatoare Tablou
(Array)
Se va selecta Array din subpaleta Controls >> All
Controls >> Array and Cluster
Atunci cand un element de tipul Array se
dispune pe panou, tipul datelor pe care acesta le
va contine nu este inca definit. Se spune ca
elementul de tip Array este vid.
Terminalul din diagrama bloc al elementului este
de culoare neagra. Sageata Run este sparta, semn
ca programul este incomplet si nu poate fi rulat.
Pentru a defini tipul de date, in elementul de tip
Array trebuie introdus un element de control sau
indicator scalar de tipul dorit (numeric, boolean,
alfanumeric, e.t.c.).
Elementul scalar ce urmeaza a fi introdus in
Array poate exista deja pe panou sau poate fi
selectat la momentul respectiv din paleta de
elemente.
Modul de plasare a unui obiect de date (Control
Numeric în cazul acesta) într-un tablou
EXERCITIU
Dispuneti pe panoul unei aplicatii:
- un Array cu valori numerice;
- un Array cu valori booleene;
- un Array cu valori alfanumerice.
Transformati cele trei Array-uri din
elemente de control in elemente
indicatoare.
• In mod implicit, atunci cand este creat, un Array are o singura
dimensiune, putand fi descris drept o matrice coloana.
• Numarul de dimensiuni ale unui Array poate fi modificat prin
dimensionarea indexului acestuia
• Daca un Array are mai mult de o dimensiune, se poate stabili
afisarea mai multor linii si mai multor coloane.
• Terminalul unui element Array se caracterizeaza prin prezenta unor
paranteze drepte a caror grosime este proportionala cu numarul de
dimensiuni.
• Atunci cand se realizeaza legaturi in diagrama, conexiunile pe care
circula un Array cu o dimensiune sunt mai groase decat cele pe care
circula valori scalare.
• Pentru Array-urile cu doua sau mai multe dimensiuni, conexiunile
sunt reprezentate cu linie dubla. Spatiul intermediar al liniei duble
este cu atat mai mare cu cat numarul de dimensiuni ale Array-ului
EXERCITIU
este mai mare.
Modificati numerele de valori vizibile ale celor trei Array-uri create in exercitiul
anterior.
Transformati Array-urile in elemente de control (daca este cazul) si definiti valori
in cadrul acestora.
Modificati indexul fiecarui Array si observati modul in care valorile se deplaseaza.
•Atunci cand este necesara existenta in diagrama a unei
constante Array, aceasta poate fi selectata din meniul cu functii
pentru valori vectoriale (Array) al paletei de functii.
•La dispunerea sa in diagrama, similar elementelor Array de pe
panou, o astfel de constanta nu are definit tipul de date pe care
le va contine.
•Definirea tipului de date se realizeaza prin introducerea in
chenarul constantei Array a unei constante de tipul dorit
(numeric, boolean sau alfanumeric).
•O constanta Array permite aceleasi operatii de definire a
numarului de valori vizibile sau de modificare a numarului de
dimensiuni ca si elementele Array din panou.
Creating Array Constants
1. Select Array
Constant shell
from the Array
subpalette

2. Place the data object in the


array shell
Crearea și utilizarea Tablourilor
•Auto-Indexarea –
buclele acumulează
array-urile la
marginile lor.
•În mod implicit,
buclele For sunt auto-
indexate, în timp ce
buclele While, nu.
Crearea Tablourilor cu ajutorul
Buclelor
• Buclele acumulează tablourile la
marginile lor
• Auto Indexarea poate fi
eliminată

• Se pot utiliza două Bucle For,


una în interiorul celeilalte,
pentru crearea unui Array 2D.
• Bucla For exterioară crează
elementele rânduri, iar Bucla For
interioară crează elementele
coloană.
Auto-Index Input
•An array input can be
used to set the For
Loop count terminal
•Number of elements
in the array equals
the count terminal
input
•Run arrow not
broken
Funcții Array

Pentru a obtine
in mod dinamic
(programatic),
structuri de
valori de tipul
Array, pot fi
utilizate o serie
de functii
specifice.
C. Common Array Functions

Array
Size
•Functia „Dimensiune Tablou” (Array Size), returneaza numarul de
elemente ale fiecarei dimensiuni ale tabloului de intrare.

Initialize Array
•Functia „Initializeaza tablou” (Initialize Array), realizeaza
initializarea elementelor unui tablou cu N dimensiuni cu o valoare
indicata.
Array Subset

•Functia „Subtablou” (Array Subset), returneaza un


numar specificat din elementele unui tablou, începand
de la un indice.
The Build Array Function

Appending an element

Concatenate Inputs

Building a higher dimension array default


The Index Array Function

Extracting an Element

Extracting a Row

Extracting an Element of a Row


• Modurile in care un Array se poate comporta la intrarea sau la iesirea dintr-o structura repetitiva sunt valabile si
in cazul buclelor While, cu deosebirea ca, in cazul acestora, comportamentul implicit este inversat:
-in mod implicit, o bucla While va prelua la fiecare iteratie intreg Array-ul de intrare. Doar in cazul in
care componentei de pe contur i se selecteaza, din meniul propriu, optiunea Enable Indexing, bucla While va
prelua cate o valoare la fiecare iteratie.
-in mod implicit, daca o valoare din interiorul unei bucle While se conecteaza la conturul acesteia,
componenta de pe contur va genera, dupa incheierea executiei buclei, doar valoarea primita in ultima iteratie.
Doar daca se selecteaza optiunea Enable Indexing a componentei de pe contur, aceasta va genera, dupa
incheierea ultimei iteratii, un Array cuprinzand valorile primite in cadrul tuturor iteratiilor.

• Functiile aritmetice si logice pentru valori scalare, precum si cele pentru valori alfanumerice, permit conectarea
de Array-uri continand valori de tipurile corespunzatoare.
Se pot astfel realiza:
- operatii aritmetice asupra valorilor dintr-un Array (radacina patrata, functii trigonometrice etc.), intre
un Array si o valoare scalara sau intre doua Array-uri;
- operatii logice intre un Array si o valoare booleana sau intre doua Array-uri cu valori booleene;
-operatii asupra Array-urilor de valori alfanumerice.
• Functiile Add Array Elements si Multiply Array Elements determina suma,
respectiv produsul valorilor numerice dintr-un Array.
Functiile And Array Elements si Or Array Elements efectueaza operatiile logice
SI, respectiv SAU, asupra tuturor valorilor booleene dintr-un Array, obtinand o
valoare booleana scalara.  Atunci cand au drept operanzi un Array si o valoare
scalara sau doua Array-uri, functiile de comparatie genereaza un Array de valori
booleene, compararea fiind efectuata valoare cu valoare.
• Daca, din meniul propriu al functiei de comparatie, se alege optiunea Compare
Aggregates, functia va genera o valoare booleana scalara.
De exemplu, daca se compara doua Array-uri de valori numerice cu functia Equal?
in starea Compare Aggregates, functia va genera valoarea True doar daca este
indeplinita conditia de egalitate intre toate perechile de valori aflate pe aceleasi
pozitii in cele doua Array-uri.
•   Functia Number To Boolean Array, aflata in meniul pentru functii booleene,
transforma un numar natural intr-un Array de valori booleene, efectuand de fapt
transformarea din baza 10 in baza 2.
Bitul cel mai putin semnificativ este reprezentat in Array de valoarea cu indicele 0.
De exemplu, valoarea 6=0+21+22 este transformata intr-un Array cu trei valori
booleene: (False, True, True).
• Functia Boolean Array To Number realizeaza transformarea inversa, dintr-un
Array de valori booleene intr-un numar natural.
D. Polimorfism
• Poliformismul reprezintă capabilităţile funcţiilor din LabView (de ex. adunare,
înmulţire, împărţire) de a accepta la intrare date cu dimensiuni şi reprezentări
diferite. Funcţiile aritmetice care posedă aceste proprietăţi se numesc funcţii
polimorfice.
• Un exemplu clasic pentru această proprietate este poliformismul funcţiei
adiţionale scalar – scalar, scalar – matrice și matrice-matrice de dimensiuni
diferite.
Combina Rezultat
ția ul
Scalar+Scala Scalar
r

Array
Array+scalar

Array
Array+Array

Array
Array+Array
Exerciții
1. Să se creeze un VI cu 6 intrări booleane (opțional) și care să
returneze numărul primei intrări adevărate (opțional).
2. Să se creeze un VI care să genereze un tablou (array) cu 10 elemente aleatoare și care să scaleze
aray-ul realizat, iar apoi să extragă ultimele 4 elemente din array-ul scalat.
•Exerciții (continuare)
Summary
• Arrays group data elements of the same type. You can
build arrays of numeric, Boolean, path, string,
waveform, and cluster data types.
• The array index is zero-based, which means it is in the
range 0 to n – 1, where n is the number of elements in
the array.
• To create an array control or indicator, select an Array
on the Controls»Array & Cluster palette, place it on
the front panel, and drag a control or indicator into the
array shell.
• If you wire an array to a For Loop or While Loop input
tunnel, you can read and process every element in that
array by enabling auto-indexing.
• By default, LabVIEW enables auto-indexing in For Loops
and disables auto-indexing in While Loops.
• Polymorphism is the ability of a function to adjust to
6. Clustere

TOPICS
A. Introduction to Clusters
B. Cluster Functions
C. Error Clusters
A. Clustere
(Grupuri)
• Sunt structuri de date care grupează datele împreună
• Datele pot fi de tipuri diferite (numerice, Booleene, stringuri, e.t.c.)
• Elementele trebuie să fie, fie toate controale, fie toate indicatoare
• Analog cu o legătură de fire dintr-un cablu
• Fiecare fir din cablu reprezintă un element al clusterului
• Deoarece un cluster are un singur fir (de intrare sau de ieșire) chiar dacă acesta
transportă multiple valori de diferite date, clusterele reduc firele și numărul de
terminale conector pe care un subVI le necesită. Figura de mai jos ilustrează
conceptul de grupare, respectiv degrupare, a elementelor de date într-un cluster.
Cluster Controls and
Indicators
1. Select a 2. Place objects inside the
Cluster shell shell
from the Array &
Cluster
subpalette

134
Creating Cluster Constants
1. Select
Cluster
Constant shell
from the Cluster
subpalette

2. Place objects in the Cluster


shell
Cluster Order
•Elements have a logical order (start with 0)
•To change order, right-click the border and select
Reorder Controls in Cluster...

136
Utilizarea Clusterelor pentru transferul
datelor în SubVI-uri
Unul dintre avantajele
clusterelor este acela că
acestea pot fi utilizate
pentru gruparea datelor la
intrarea și respectiv ieșirea
subVI-urilor.
Clusterele reduc astfel
numărul de fire într-o
diagramă.

137
B. Funcții Cluster
• Aceste funcții se găsesc în subpaleta Cluster, Class
& Variant a paletei Functions>>Programming
Funcţia Bundle
• Grupează mai multe componente, realizând un
grup, sau înlocuieşte una sau mai multe
componente ale unui grup existent.
• Gruparea elementelor se realizează în ordinea acestora în cadrul grupului. Prima componentă conectată la funcţia Bundle este componenta cu index-ul
0, urmează componenta cu index-ul 1, s.a.m.d. Numărul de intrări poate fi modificat fie prin selectarea Add Input din meniul contextual al intrării fie
utilizând unealta de poziţionare / redimensionare din caseta Tools.
•O altă exemplificare a utilităţii funcţiei Bundle este
prezentată în figura de mai jos.
•Constanta numerică (setată la valoarea 0) defineşte punctul
de origine real iar prin controlul numeric se impune valoarea
de incrementare. Funcţia Bundle reuneşte datele numerice
permiţând reprezentarea grafică.
•Funcţia Bundle poate fi utilizată și pentru înlocuirea unor
componente ale unui grup (cluster) deja existent. În acest
caz, grupul trebuie conectat la intrarea cluster a funcţiei.
•În cadrul aplicaţiei de mai jos, funcţia bundle permite
înlocuirea valorii numerice corespunzatoare controlului Knob
şi respectiv a controlului Numeric 2, cu valorile numerice
corespunzătoare controalelor knob_input, respectiv Numeric
2_input.
Funcţia Bundle by Name
• Funcţia Bundle by Name este folosită doar pentru înlocuirea unei componente dintr-un
grup existent. Modul de lucru este asemănător cu cel prezentat anterior. Cluster-ul existent
se conectează la intrarea specificată a funcţiei (input cluster). În ordinea logică a
construcţiei se introduce controlul care va înlocui o componentă. Componenta de înlocuit
se va identifica după numele reprezentat prin eticheta asociată. Numărul posibilităţilor de
înlocuire se pot vizualiza din meniul contextual al intrării funcţiei prin selectarea opţiunii
Select Item.
Funcțiile Unbundle și Unbundle by
Name
•Descompunerea (degruparea) grupurilor (clusterelor) în componente, se realizează
cu ajutorul a două funcţii, Unbundle şi Unbundle by Name.
C. Error Clusters
•Use the error in and error out clusters in each VI you use or build to
handle errors in the VI.
•The error clusters located on the Controls»Array & Cluster palette
include the components
• Error cluster contains
of information shownthe following information:
– Boolean to report whether error occurred
– Integer to report a specific error code
– String to give information about the error
Error Cluster Details
•Status is a Boolean value that reports
TRUE if an error occurred. Most VIs,
functions, and structures that accept
Boolean data also recognize this
parameter.
•Code is a signed 32-bit integer that
identifies the error numerically. A non-
zero error code coupled with a status
of FALSE signals a warning rather than
a fatal error.
•Source is a string that identifies
where the error occurred.
Error Handling with Clusters
• You can make error handling decisions on the block diagram
• Error handling in LabVIEW follows the dataflow model. Just as data flow
through a VI, so can error information
• Wire the error information from the beginning of the VI to the end
• Error information is passed from one subVI to the next
• If an error occurs in one subVI, all subsequent subVIs are not executed in the
usual manner
• Error Clusters contain all error conditions
• Automatic Error Handling

Error Cluster
Simple Error Handler
Use the Simple Error Handler to handle the error at the end of
the execution flow.

The Simple Error Handler is located on the Functions»All


Functions»Time and Dialog palette. Wire the error cluster
to the Error In (no error) input.
Using While Loops for Error
Handling
You can wire an error cluster to the conditional
terminal of a While Loop to stop the iteration of the
While Loop.
Only the TRUE or FALSE value of the status
parameter of the error cluster is passed to the
terminal.
When an error occurs, the
While Loop stops.
Exercise 6 – Error Clusters &
Handling
Summary
• Clusters group data elements of mixed types. A cluster
cannot contain a mixture of controls and indicators.
• To create a cluster control or indicator, select a cluster
on the Controls»Array & Cluster palette, place it on
the front panel, and drag controls or indicators into the
cluster shell.
• Use the Cluster functions located on the Functions»All
Functions»Cluster palette to create and manipulate
clusters.
• Error checking tells you why and where errors occur.
• The error cluster reports the status, code and source of
the error.
• Use the error cluster controls and indicators to create
error inputs and outputs in subVIs.
7. Afișarea datelor

TOPICS
A. Waveform Charts
B. Waveform and XY Graphs
C. Intensity Plots
Înregistratoare (Grafice)
•Înregistratoarele sunt indicatoare
numerice speciale care afişează
una sau mai multe curbe. Acestea
se găsesc în paleta Graph Idicators
a meniului Controls.
Sunt disponibile 3 tipuri de componente de interfata pentru vizualizarea
reprezentarii grafice:
-diagrama unda (waveform charts);
-grafice unda (waveform graphs);
-grafice XY (XY graphs);
Diagrama unda: Este o componeta de interfata dedicata afisarii uneia sau
mai multor reprezentari grafice simultan, pentru care se urmareste variatia in
timp.
Graficele unda: Se utilizeaza pentru reprezentarea functiilor de o variabila
(de forma y=f(x)), avand punctele distribuite uniform pe axa absciselor.
Aceasta se aseamana cu diagrama undă. Permite realizarea uneia sau mai
multor reprezentari simultane.
Graficul XY: Este componenta cea mai generala, care permite realizarea
reprezentarilor grafice ale functiilor de doua variabile X si Y. Deasemenea se
pot realiza una sau mai multe reprezentari simultane.
Wiring to Charts
Single-Plot Chart

Multiple-Plot Chart
Personalizarea graficelor
B. Graphs
• Selected from the Graph subpalette
• Waveform Graph – Plot an array of numbers
against their indices
• XY Graph – Plot one array against another
Plot Legend
(point and line
styles)

Graph Palette
Scale Legend
Single-Plot Waveform Graphs
Uniform X
axis
Initial X =
0.0
Delta X = 1.0

Uniform X
axis
you specify
point
spacing
Multiple-Plot Waveform Graphs
Each row is a
separate plot:
Initial X = 0
Delta X = 1

Each row is a
separate plot:
Bundle
specifies point
spacing of the
X axis
XY Graphs
• Non-uniform X axis
• Separate X and Y arrays
define data points
Chart and Graph Use
Summary
e the Context Help window with charts and graphs
C. Intensity Plots and Graphs

•Useful in displaying terrain, temperature patterns, spectrum analysis, and


image processing
•Data type is a 2D array of numbers; each number represents a color
•Use these options to set and display color mapping scheme
•Cursor also adds a third dimension
Exemple:
Se va realiza un VI care să genereze un număr aleator la o rată specificată de
utilizator și afișarea rezultatelor pe un grafic (Waveform Chart) până când
este oprit de utilizator. Se va salva salva VI-ul cu numele While_Graph.vi
Se va modifica While_Graph pentru a calcula și afișa
media ultimelor trei măsurări. Se va salva salva VI-ul cu
numele While_Graph_Average.vi
Următorul exemplu arată construcția funcției trigonometrice sinus
cu ajutorul buclei For, și afișarea rezultatului pe un Grafic undă.
Summary
• The waveform chart is a special numeric indicator that
displays one or more plots.
• Waveform graphs and XY graphs display data from arrays.
• Right-click a waveform chart or graph or its components to set
attributes of the chart and its plots.
• You can display more than one plot on a graph using the Build
Array function and the Bundle function for charts and XY
graphs. The graph becomes a multiplot graph when you wire
the array of outputs to the terminal.
• When you wire data to charts and graphs, use the Context
Help window to determine how to wire them.
• You can use intensity charts and graphs to plot three-
dimensional data. The third dimension is represented by
different colors corresponding to a color mapping that you
define. Intensity charts and graphs are commonly used in
conjunction with spectrum analysis, temperature display, and
image processing.
8. Luarea deciziilor într-un VI și
structura secvențială (Sequence)

TOPICS
A. Decision making with the Select function
B. Case Structures
C. Formula Nodes
D. Structura Sequence
A. Simple Decision: Select
Function
•If Temp Scale is TRUE, pass top input;
• If temp scale is FALSE, pass bottom input.

•If the decision to be made is more complex than a Select


function can execute, a Case Structure may be what is required.
B. Case Structures
Structura de selectie Case - contine multiple subdiagrame, numai
una din acestea executandu-se depinzând de valoarea de intrare
transmisă structurii.
• Atunci cand este dispusa in diagrama, o structura Case contine doua
ferestre (True si False), fiecare dintre acestea cu propriul flux de date.
• Pe conturul structurii se afla dispus un terminal selector (de culoare
verde, continand semnul intrebarii).
• Structura Case va executa doar una din cele doua ferestre, in functie de
valoarea booleana (True sau False) conectata la terminalul sau selector.
• Daca la terminalul selector al unei structuri Case, in locul unei valori
booleene, se conecteaza o valoare numerica (numar intreg sau natural),
numele ferestrelor se vor modifica automat din True si False in 0 si 1.
• Structura va executa fereastra al carei nume va coincide cu valoarea
numerica ce ajunge la terminalul sau selector. In aceasta situatie, are
sens ca structura Case sa contina mai mult de doua ferestre.
• Deoarece structura Case nu va putea contine atatea ferestre cate valori
numerice pot ajunge la terminalul sau selector, una dintre ferestre trebuie
declarata drept fereastra implicita (Default). Fereastra implicita va fi
executata atunci cand valorii ajunse la terminalul selector nu ii
corespunde nici un nume de fereastra.
• Un nume de fereastra poate contine si descrierea unei multimi de valori,
de genul 2..5, 7..9, intelegand prin aceasta ca fereastra respectiva va fi
executata daca la terminalul selector ajunge una din valorile 2, 3, 4, 5, 7,
8 sau 9.
• O valoare nu poate exista in numele mai multor ferestre (ar exista o
incertitudine privind fereastra ce trebuie executata).
Boolean Case Structure Example:
If Temp Scale is TRUE, execute True case;
If temp scale is FALSE, execute False case.
Boolean and Numeric Cases

Wire all possible outputs of the case structure


String, Enum, and Error Cases
String Case Enum Case Error Case
Acest VI utilizează o structură Case pentru
calculul rădăcinii pătrate a unui număr
dat și verificarea dacă numărul respectiv
este negativ. Dacă este negativ, VI-ul va
returna valoarea -99999.0 în Indicatorul
Digital și va afișa un mesaj de eroare,
mesaj aflat într-o Constantă String.
C. Formula Node Note semicolon

n the Structures subpalette


mplement complicated equations
Variables created at border
Variable names are case sensitive
Each statement must terminate with a semicolon (;)
Context Help Window shows available functions
•Exercițiu: Să se realizeze VI-ul din figura de
mai jos
D. Structura secvențială
(Sequence)
•O structură secvențială conţine una sau mai multe subdiagrame sau
cadre (frame) care se execută în ordine secvenţială.
•Există două secvenţe structurale: structură secvenţială plată (Flat
Sequence Structure) şi structură secvenţială stivuită (Stacked Sequence
Structure).
•Structura secvenţială plată se utilizează pentru a asigura execuţia unei
subdiagrame înainte sau după o altă subdiagramă. Adăugarea unei noi
structuri secvenţiale se obţine prin click - dreapta pe chenarul structurii
şi apelarea facilităţii dorite din meniul contextual. Un clik – dreapta pe
bara orizontală a chenarului oferă două facilităţi: introducerea unei
structuri secvenţiale în faţă (Add Frame Before) sau introducerea unei
structuri după (Add Frame After). Un click – dreapta pe bara verticală a
chenarului oferă doar una din cele două posibilităţi: pe bara stângă
permite Add Frame Before iar pe bara dreaptă permite Add Frame After.
Un click-dreapta pe o bară verticală a chenarului pentru o structură
secvenţială intermediară oferă facilitatea Insert Frame.
•Structurile secvenţiale plate se execută de la stânga la dreapta când toate
datele legate la cadru sunt disponibile. Se recomandă structura secvenţială
plată pentru a evita secvenţele locale şi pentru o documentare mai bună a
diagramei bloc.
•În primul cadru se realizează operaţia de multiplicare a valorii controlui
introdus în panoul frontal iar rezultatul este transferat spre cadrul 2. În
cadrul 2 şi 3 se execută alte două operaţii matematice care se bazează pe
rezultatul anterior. Condiţionarea privind succesiunea operaţiilor şi o
ordonare clară a diagramei s-a soluţionat astfel prin structura secvenţială
plată.
structura Sequence stivă, contine o
singura fereastra, aceasta fiind totodata si
fereastra curenta (vizibila). Deschizand
meniul propriu al structurii si alegand una
din optiunile Add Frame After sau Add
Frame Before, se poate adauga o fereastra
dupa sau inaintea celei curente.
•Daca o structura Sequence stivă contine
mai mult de o fereastra, atunci ferestrele
primesc indici (numere de ordine) incepand
cu 0, iar pe latura superioara a conturului
structurii apare un selector prin intermediul
caruia se poate trece de la o fereastra la
alta.
•Atunci cand o structura Sequence stivă
contine cel putin doua ferestre, ordinea
acestora poate fi schimbata: se modifica
indicele ferestrei curente, selectand
optiunea Make This Frame, apoi noul
indice.
• Atunci cand se doreste transferul unei valori intre doua ferestre ale unei structuri Sequence, prin
selectarea optiunii Add Sequence Local se dispune pe conturul structurii o variabila locala a acesteia
(sub forma unui patrat galben).
• Daca, in una din ferestrele structurii, se conecteaza o valoare la variabila locala, fereastra respectiva
devine fereastra sursa pentru acea variabila. In acea fereastra, simbolul variabilei locale contine o
fereastra indreptata spre exteriorul structurii.
In ferestrele anterioare ferestrei sursa, simbolul variabilei locale devine hasurat, semn ca valoarea
variabilei locale nu este accesibila in acele ferestre.

• In ferestrele de dupa fereastra sursa, simbolul variabilei locale va contine o sageata indreptata spre
interiorul structurii. In aceste ferestre, valoarea transferata prin intermediul variabilei locale poate fi
utilizata in fluxul de date. O structura Sequence poate dispune de mai multe variabile locale. 
• Intr-o structura Sequence pot fi utilizate valori provenite din fluxul de date exterior. O valoare
introdusa din exterior intr-o structura Sequence va putea fi utilizata in oricare dintre ferestrele
structurii. Daca, intr-o anumita fereastra, se face o legatura din structura Sequence in exteriorul
acesteia, la iesirea respectiva (patratul de pe contur) nu va mai putea fi legata o alta valoare din alta
fereastra (ar exista o incertitudine privind valoarea care iese din structura).
Indiferent de indicele ferestrei in care s-a facut o legatura spre exterior, valoarea va parasi iesirea de
pe conturul structurii Sequence doar dupa executarea ultimei ferestre.
• În figura alăturată se prezintă o structură secvenţială stivă formată din 3
cadre (0, 1, 2) cadrul activ în figura prezentată fiind cadrul 1.
• În fiecare cadru se pot introduce nodurile existente sau edita altele noi.
Diagrama care trebuie execută prima se introduce în cadrul “0”,
diagrama care trebuie executată a doua în cadrul “1” s.a.m.d.
• O exemplificare a utilizării structurii secvenţiale stivă este prezentată în
figura de mai jos

• Exemplu de structură secvenţială stivă:


a – cadru 0; b – cadru 1; c – cadru 2
• In primul cadru se realizează conform schemei
logice impuse o operaţie de multiplicare iar
rezultatul este vizualizat prin indicatorul Numeric 2
şi utilizat atât în cadrul 2 cât şi în cadrul 3. Acest
lucru este posibil prin crearea secvenţei locale
apelând din meniul contextual pentru click dreapta
pe conturul vertical al cadrului.
• Secvenţa locală devine activă după conectarea unui
fir la aceasta. Starea activă este semnalizată prin
apariţia unei săgeţi în interiorul semnului alocat
secvenţei. Pe acelaşi principiu rezultatul operaţiei
matematice din cadrul 2 este posibil să fie utilizat în
cadrul 3 (dar nu şi în cadrul 1, fluxul datelor fiind
doar spre cadrele de ordin superior).
Summary
• The Select function is used to choose between two inputs
dependant
on a boolean input.
• A Case structure has two or more cases. Only one case is
visible at a time, and the structure executes only one case
at a time.
• If the case selector terminal is Boolean, the structure has
a TRUE
case and a FALSE case. If the selector terminal is an
integer, string,
or enumerated type value, the structure can have up to
231–1 cases.
• Inputs are available to all cases, but cases do not need to
use each
input. If at least one output tunnel is not defined, all
9. Stringuri și Fișiere I/O
(Intrare/Ieșire)

TOPICS
A. String controls and indicators
B. String functions
C. File I/O operations
D. High-level File I/O VIs
E. Low-level File I/O VIs
F. Format text files for use in spreadsheets
A. Controale și Indicatoare String
(Șir de caractere)
• Un rol aparte intre controalele/indicatoarele din mediul LabView il joacă cele pentru lucrul cu sir de
caractere si tabele. Componentele din această categorie permit citirea/afisarea acestui tip de date.
• Un string este o secvență de caractere (ASCII) afișabile sau neafișabile (spațiu, tab, e.t.c.)
• Utilizări – afișarea mesajelor, controlul instrumentelor, fișiere I/O
• Controalele/indicatoarele string se găsesc în subpaleta Controls» »Text Control or Text
Indicator
Moduri de afișare a stringurilor
• Normal display • \ code display

• Password display • Hex display


B. Funcţii  String
• Funcţiile pentru valorile alfanumerice sunt grupate în subpaleta String 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.

• De asemenea, subpaleta
String conţine un element
String Constant utilizat
pentru introducerea în
diagramă a valorilor
alfanumerice constante.
Funcţia String Length determină numărul de caractere dintr-o valoare

alfanumerică. Sunt luate în considerare şi caracterele neafişabile (spaţiu, Tab,
sfârşit de linie etc). Numărul de caractere de la ieşirea funcţiei este exprimat ca
un număr întreg pe patru octeţi.

• Funcţia Concatenate Strings posedă un număr de intrări ce poate fi modificat


de către utilizator prin dimensionarea simbolului funcţiei (în mod asemănător cu
Compound Arithmetic). La ieşirea sa, funcţia generează o valoare alfanumerică
obţinută prin concatenarea textelor de la intrările sale, în ordinea de sus în jos.
• Funcţia String Subset extrage, din textul conectat la
intrarea String, o porţiune de Length caractere începând
de la caracterul aflat la poziţia Offset inclusiv (pentru
primul caracter se consideră offset = 0). Dacă la intrarea
Offset a funcţiei nu este introdusă nici o valoare, funcţia
consideră că extragerea se va efectua începând cu primul
caracter (valoarea implicită 0 a intrării offset). Dacă la
intrarea Length nu este introdusă nici o valoare, funcţia
consideră că extragerea se va efectua până la ultimul
caracter inclusiv.
•Funcţia Replace Substring şterge o porţiune din textul conectat la
intrarea String şi introduce în locul respectiv textul conectat la intrarea
Substring. Porţiunea înlocuită începe de la caracterul aflat pe poziţia
Offset inclusiv şi conţine Length caractere. Intrarea Offset are valoarea
implicită 0, iar intrarea Length are o valoare implicită egală cu numărul
de caractere legat la intrarea Substring. Dacă la intrarea Substring nu se
leagă nici o valoare, funcţia efectuează o ştergere a unei porţiuni, iar
dacă la intrarea Length se leagă valoarea 0 funcţia efectuează, de fapt, o
inserare a unei porţiuni.
• Funcţia Search and Replace String caută textul Search String  în textul conectat la
intrarea String, iar când îl găseşte, îl înlocuieşte cu textul conectat la intrarea Replace
String. Căutarea are loc începând de la poziţia Offset a textului String. Dacă la intrarea
Offset nu se conectează nici o valoare, căutarea are loc începând cu prima poziţie. Dacă
la intrarea Replace String nu se conectează nici o valoare, atunci funcţia efectuează o
ştergere (înlocuire cu text vid). Dacă la intrarea Replace All nu se conectează nici o
valoare, atunci funcţia se opreşte după prima apariţie a textului Search String. Dacă la
această intrare se conectează o valoare logică de tip True, funcţia efectuează înlocuiri
pentru toate apariţiile textului Search String. Funcţia generează textul rezultat în urma
înlocuirii la ieşirea Result String, iar la ieşirea Offset Past Replacement generează o
valoare indicând poziţia caracterului aflat imediat după ultimul caracter înlocuit.
•Funcţia Search/Split String caută textul conectat la intrarea Search String/char
în textul conectat la intrarea String. Căutarea se efectuează începând cu poziţia
Offset. Dacă textul căutat este găsit, funcţia împarte textul iniţial în două părţi,
astfel: partea dinaintea textului căutat (Substring Before Match) şi textul căutat
urmat de restul textului în care s-a făcut căutarea (Match + Rest Of String).
Funcţia generează la ieşirea Offset Of Match poziţia în care a fost găsit textul
căutat. Dacă textul căutat nu a fost găsit, ieşirea Substring Before Match conţine
tot textul legat la intrarea String, iar ieşirea Offset Of Match are valoarea -1.
•Funcția Format Into String convertește numere într-un șir de
caractere (1.28→1.2800). Această funcție nu este folosită doar
pentru conversia datelor numerice în date string. Mai pot fi
convertite în stringuri următoarele elemente: căi de fișiere,
enumerări, date Booleene. De exemplu, utilizând formatul %s un
Boolean va fi convertit în "FALSE" sau "TRUE." Utilizând formatul
%d, Booleanul va fi convertit în "0" sau "1." Similar, utilizând
formatul %s, un Enum va fi convertit în textul său. Utilizând
formatul %d, Enum va fi convertit în valoarea sa întreagă.
Converting Numerics to Strings
The Build String Express VI
concatenates an input string. If
the inputs are not a string, the
inputs are converted to a string
based on the configuration of the
Express VI. The Build String
Express VI is available in the
Functions»Output palette.
Converting Strings to Numerics
Scan From String: Converts the input string containing
valid numeric characters to individual numbers. Format
string can specify multiple outputs with differing data
types (numeric, Boolean, etc.). The function can be
stretched out to add more output terminals.
Exerciții
1. Să se realizeze un VI care să convertească un număr și un control
slide (Trailer) într-un string și care să concateneze acest string cu un alt
string (Header) astfel încât să rezulte un singur string de ieșire. VI-ul va
determina de asemenea lungimea stringului de ieșire.
2. Să se realizeze un VI care să convertească un număr într-un string și care să concateneze acest
string cu alte stringuri astfel încât să rezulte un singur string de ieșire. VI-ul va determina de asemenea
lungimea stringului de ieșire.

3. Se va realiza un VI care să exemplifice modul de creare a unui tabel în care fiecare coloană corespunde unei variabile diferite
C. Fișiere Intrare/Ieșire (I/O)
Operaţiile cu fişiere de intrare / ieşire (I/O) au
ca scop principal stocarea datelor pe un
suport şi preluarea datelor dintr-un fişier
Principalele operații ce pot fi realizate sunt:
• Deschidere si închidere fisiere de date;
• Citirea datelor din fișiere si scrierea datelor
în fisiere;
• Mutarea si redenumirea fisierelor si
directorilor;
• Crearea de directori și fișiere, specificați în
controlul cale;
• Scrierea de stringuri, numere, vectori și
clustere în fișiere.
Fișierele pot fi binare, text sau tabel.
Scrierea/Citirea în fișierele de măsurare
LabVIEW au extensia “lvm” (*.lvm)
There are 4 levels of file I/O hierarchy: High-Level Utility File VIs,
Intermediate File I/O functions, Advanced File I/O and Express VIs
functions.

Four Hierarchy Levels:


High-level File VIs
Intermediate File VIs and Functions
Advanced File Functions subpalette
Express VIs
The high-level VIs handle all lower level functions transparently and provide a
simplified means of error handling. If an error occurs, a dialog box appears
showing the error.
The Intermediate File I/O functions provide substantially more flexibility while
still handling the lowest level of functionality for you. You can handle 80-90%
of file I/O operations at this level. Encourage students to use the Intermediate
File I/O functions for their applications
The Advanced File I/O functions manage all file I/O operations explicitly but are
the most complex.

This is a great place to explain the difference between VIs and Functions.
Functions are manilla/yellow, are the lowest level calls LabVIEW can make, and
you do not have access to their block diagram or source code. VIs included in
the functions palette have white backgrounds and if you look at their block
diagrams you will see they are composed of functions.
D. High-level File I/O VIs
• Write to Spreadsheet File
• Read from Spreadsheet File
• Write Characters to File
• Read Characters from File
• Read Lines from File
E. Model de program pentru un
Fișier I/O
Deschide/ Citește
Crează/ Închide Verifică
și/sau
Înlocuiește Fișier Erorile
Scrie în Fișier
Fișier
varea (Scrierea) datelor într-un
er

• Deschide/Crează/Înlocuiește, deschide fișierul existent


test1.dat și generează fișierul identificator refnum și
clusterul error, care este un mănunchi de date ce conține
informații referitoare la erorile posibile.
• Write File scrie datele
• Close File închide fișierul
• Simple Error Handler verifică erorile
Exemplu de scriere într-
un fișier
• Open/Create/Replace opens the existing file
TEST1.DAT and generates refnum and error cluster
• Write File writes the data
• Close File closes the file
• Simple Error Handler checks for errors
itirea datelor dintr-un
șier

•Open/Create/Replace opens the file


•Read File reads the specified number of bytes from
the file
•Close File closes the file
•Simple Error Handler checks for errors
F. Formarea stringurilor
•tabelare
Tabelele sunt unelte foarte utile pentru manipularea și
analiza datelor
• Există mai multe formate pentru datele tabelare. Cel mai
întâlnit este formatul delimitat prin “tab”:
– Coloanele sunt separate prin caracterul tab
– Rândurile sunt separate prin caracterul end-of-line (enter)
• Tabelele sunt ușor de realizat utilizând VI-urile fișiere I/O din
LabVIEW, cel mai utilizat fiind Format into File
Format Into File convertește orice
număr într-un string și inserează
caracterele “tab” si “end-of-line”. Ieșirea
este un string în format tab delimitat
compatibil cu multe programe tabelare.
rearea fișierelor
abelare

Tab End of Line


Funcţii Expres pentru lucru cu Fişire
I/O
În figura de mai jos se exemplifică utilizarea funcţiei de scriere a datelor într-un fişier
(Write To Measurement File). Se remarcă construcţia fişierului de date cu precizările

referitoare la data simulării, numărul de eşantioane etc.
LabVIEW Measurement
• Writer_Version 2
• Reader_Version 2
• Separator Tab
• Decimal_Separator ,
• Multi_Headings Yes
• X_Columns No
• Time_Pref Relative
• Operator Mihai
• Date 2009/04/27
• Time 11:01:18,363543
• ***End_of_Header***

• Channels 1
• Samples 100
• Date 2009/04/27
• Time 11:01:18,363543
• X_Dimension Time
• X0 0,0000000000000000E+0
• Delta_X 0,001000
• ***End_of_Header***
• X_Value Sine Comment
• 0,000000
• 0,063418
• 0,126580
• 0,189233
• 0,251123
• 0,312003
• 0,371627
• 0,429755
• 0,486152
• 0,540593
• 0,592857
• 0,642734
• 0,690024
• 0,734536
• 0,776090
Exemplificarea citirii unui fişier de măsurători test_2.lvm şi
vizaualizarea informaţiei acetuia este prezentată în figura de mai jos.
Exercițiu: Să se realizeze VI-ul de mai jos, care
stochează datele într-un fișier și care afișază
valoarea medie, maximă și minimă a acestor date
10. Achiziția datelor

TOPICS
A. Overview and Configuration
B. Data Acquisition in LabVIEW
C. Analog Input
D. Data Logging
E. Analog Output
F. Counters
G. Digital I/O
A. Overview and Configuration
•Sarcina fundamentală a unui sistem DAQ este măsurarea sau generarea semnalelor
fizice din (în) lumea reală. Inainte ca un sistem bazat pe computer să poată măsura un
semnal fizic, un senzor sau un traductor trebuie să convertească semnalul fizic într-un
semnal electric cum este tensiunea sau curentul. Adesea, placa DAQ plug-in este
considerată a fi întregul sistem DAQ; dar, placa este numai una din componentele
sistemului. Spre deosebire de majoritatea instrumentelor independente, uneori nu se
pot conecta semnalele direct la o placă DAQ plug-in. Un accesoriu pentru
condiţionarea semnalului trebuie să condiţioneze semnalele înainte ca placa DAQ
plug-in să le convertească în informaţie digitală. In final, software-ul controlează
sistemul DAQ – achiziţionând datele brute, analizînd datele şi prezentând rezultatele.
•Schema simplificată a unui sistem computerizat de monitorizare şi control, cuprinzând
componentele sale principale, este prezentată în figura de mai jos.
•Trebuie remarcat faptul că dacă între procesul monitorizat şi traductor, respectiv
elementul de comandă şi procesul monitorizat, are loc un transfer de energie ce poate
lua diverse forme (mecanică, termică, electromagnetică etc.), în restul sistemului
există un transfer de informaţie conţinută în semnale de natură electrică.
•Traductoarele sondeaza lumea reala, “culeg” semnale analogice (ex:
sunete, radiatii luminoase, etc.) si le transforma în semnale electrice pe
care le va prelua placa de achizitie. Exemple de astfel de traductoare:
microfoane, fotorezistente, celule fotovoltaice, termocupluri, etc.
•În majoritatea situatiilor se utilizeaza sisteme de conditionare a semnalui
(filtre, amplificatoare) care asigura compatibilitatea semnalului electric cu
placa de achizitie si realizeaza, în unele situatii, o prelucrare primara a
semnalului.
•Placa de achizitie are rolul de a asigura conversia semnalului analogic primit de la
traductor sau de la un sistem de conditionare a semnalui, în semnal digital. Ea poate
îndeplini si alte functii, precum generarea de semnale analogice, comunicatii digitale,
numarare (cronometrare) prin primirea si transmiterea de semnale sub forma de impulsuri.
•Semnalele electrice ce intră sau ies din condiţionatoarele de semnal sunt de natură
analogică, pe când semnalele schimbate între computer şi convertoarele din cadrul plăcii
de achiziţie de date sunt de natură digitală.
•În sistemele computerizate de măsurare şi control, computerul are nu numai rolul de
prelucrare a informaţiilor obţinute ci şi pe acelea de afişare a acestora pentru uzul
utilizatorului şi stocare în vederea consultării ulterioare.
Exemplu de achiziţie a undelor sonore
Un exemplu de sistem de achiziţie ce are ca senzor un microfon este
prezentat mai jos. Microfonul înregistraza vibratiile sonore emise de un
diapazon, pe care le transforma în tensiune electrica variabila. Aceasta
este transmisa placii de achizitie care o va converti în cod binar. Sub
aceasta forma semnalul poate fi înregistrat, analizat si prezentat sub
diferite forme pe monitorul computerului.
Exemplu de conversie a semnalului digital în
unde sonore
Placa de achizitie poate efectua si conversia semnalului binar în
semnal analogic care sa fie preluat în acest caz de boxele care îl vor
transforma din nou în vibratii sonore.
Exemplu de măsurare a temperaturii

4400Ohm
Resistor Laptop
+12V supply USB
LabVIEW
RTD NI 6008
VI

Traductorul/Senzorul este o termorezistență de platină (RTD)


Condiționarea de semnal este realizată cu ajutorul unei surse de
alimentare de 12V și o rezistență fixă de 4400Ω.
Unitatea de achiziție este o placă pe USB NI 6008
•Plăcile de achiziție National Instruments, includ drivere NI-DAQ,
care sunt o colecție de VI-uri, utilizate pentru configurarea,
achiziția datelor de la placa de achiziție, precum și trimiterea
datelor de la aceasta.
•NI-DAQ 7.0 conține două drivere NI-DAQ - NI-DAQ tradițional și NI-
DAQmx – fiecare cu Interfață de Programare Aplicație (API) proprie,
precum si configurare hardware și software diferite.
•NI-DAQmx este cea mai nouă versiune de driver NI-DAQ, practic
singura versiune utilizată astăzi. Acest driver, are noi VI-uri (față de
driverul tradițional), noi funcții și unelte de dezvoltare pentru
controlul plăcilor de măsurare. Avantajul important al acestui nou
driver îl constituie VI-ul DAQ Assistant utilizat pentru configurarea
canalelor și a aplicațiilor de măsurare.
•Atât NI-DAQ tradițional cât și NI-DAQmx suportă diferite seturi de
dispozitive
NI-DAQ
conține:
•NI-DAQ
traditional
•NI-DAQmx

Cadrul general al
software-ului de măsurare
• Odată cu instalarea lui LabVIEW, are loc și instalarea instrumentului software al firmei National
Instruments Measurement & Automation Explorer (MAX), care ajută la instalarea şi testarea
echipamentelor hardware produse de firma National Instruments.
• Acest program instalează şi monitoriuzează orice echipament al firmei National Instruments, care
a fost conectat la calculator.

Measurement & Automation


Explorer (MAX),
• În figura de mai jos se pot oberva posibilităţiile oferite de acest component
software: se poate efectua un autotest (Self-Test) pentru a vedea dacă
echipamentul selectat funcţionează bine, un test de verificare (Test Panels), se
poate crea o activitate (Create Task) care se poate include în program, se poate
vedea configuraţia pinilor (Device Pinouts), proprietăţiile placii (Properties).
• Se poate efectua un test în care se pot regla şi testa mai multe elemente.
Acest test se numeşte Test Panels. Un asemenea test este prezentat în
figura de mai jos. În acest test se pot testa intrarile analogice la care
trebuie menţionat valoarea maximă şi minimă a intervalului de măsurare,
frecvenţa (Rate) şi numărul de eșantioane (Samples To Read), ieşirile
analogice, linii digitale I/O, numărătoarele (counter/timer).
• În figura alăturată este arătat modul de
creare a unei activități (task), selectând
opţiunea Create Task.
• În acest configurator trebuie setată
valoarea maximă şi minimă a semnalului
măsurat, driverul DAQmx amplificând
sau atenuând automat semnalul pentru
o rezoluţie căt mai bună a convertorului
analog-numeric, astfel încât măsurarea
ce va fi efectuată va fi mult mai sensibilă
pe domeniul selectat. Mai trebuie de
asemenea specificată configurarea
intrărilor analogice (Terminal
Configuration), unde există mai multe
posibilităţi. Se va încheia definirea task-
ului prin atribuirea unui nume. Toate
activităţile pe care le definiţi se vor
regăsi în lista Data Neighborhood\NI-
DAQmx Tasks.
VI-urile pentru achiziția de date în
LabVIEW se află în subpaleta DAQmx -
B. Achiziția datelor în
Data Acqusition a subpaletei
Measurement I/O, a paletei Functions.
LabVIEW
Subpaleta DAQmx - Data Acqusition
conține toate VI-urile necesare pentru
realizarea operațiilor I/O analogice, I/O
digitale și a operațiilor de
contorizare/numărare.
Se pot configura activitățile (task-
urile) pentru a se obține o sumedenie
de funcții specifice utilizând Nodurile
Proprietate aflate în aceiași subpaletă.
Multe aplicații, care nu necesită
sincronizări și timing-uri importante
pot fi obținute cu ajutorul VI-ului DAQ
Assistant Express. Acest VI permite o
ușoară configurare a plăcii de
achiziție. La plasarea lui DAQ
Assistant Expres, în diagrama bloc,
apare și o cutie dialog unde sunt
configurate diferitele obiecte locale
pentru realizarea funcțiilor specifice
de măsurare.
NI-DAQmx pentru achiziția de date

Set de VI-uri utilizate pentru


realizarea operațiilor de I/O
anlogice, I/O digitale
VI-ul Express, DAQșiAssistant
a celor de
numărare.
• Programare rapidă și ușoară a
placilor DAQ
• Crează o aplicație (task)
locală
• Multe aplicații pot utiliza VI-ul
Expres DAQ
Assistant
Tipuri de aplicații de achiziție de date
cu

NI-DAQmx
Atunci când este plasat VI-ul Express DAQ Assistant în diagrama bloc, apare o cutie
de dialog în care se configurează aplicația (task-ul) pentru realizarea funcției de
măsurare specifică. Prin crearea acestei aplicații locale se va specifica exact tipul
de măsurare care va avea loc.

Se pot realiza
următoarele tipuri
de măsurări:
•Analog Input
•Analog Output
•Counter Input
•Counter Output
•Digital I/O
C. Intrare analogică
• Intrarea analogică este utilizată
pentru realizarea conversiilor
analog-digitale (A/D)
• Tipurile de măsurare disponibile în
această aplicație sunt: tensiune,
temperatură, efort (forță), curent
rezistență sau frecvență.
• Fiecare tip de măsurare are
propriile caracteristici, cum ar fi
valoarea rezistenței pentru
măsurarea curentului sau
parametrii mărcii tensometrice
pentru măsurarea efortului (forței)
Analog Input Task Timing and
Triggering
Configures the number
of samples and sample
rate for the task

Configures the start and


reference triggers for the
task
• Atunci când se realizează o aplicație de intrare analogică, aceasta poate fi setată să
achiziționeze 1 Eșantion, n Eșantioane sau o achiziționare Continuă.
Achiziția 1 Eșantion
• Achiziția unui singur eșantion este o operație la cerere. Cu alte cuvinte, NI-DAQmx
achiziționează o valoare la o intrare a canalului și imediat returnează valoarea. Această
operație nu necesită sincronizare hardware. De exemplu, dacă se monitorizează periodic
nivelul de fluid într-un rezervor, vor trebui achiziționate un singur punct de date.
Traductorul conectat la rezervor va produce o tensiune reprezentând nivelul fluidului, la un
singur canal al dispozitivului de măsurare inițiind un singur punct de achiziție.
Achiziția n Eșantioane
• O modalitate de a achiziționa eșantioane multiple de la unul sau mai multe canale, constă
în achiziția de eșantioane singulare în mod repetat. Totuși, achiziționând un singur eșantion
de date, de la unul sau mai multe canale, de mai multe ori, este ineficient și consumă timp.
Mai mult decât atât, va lipsi controlul asupra timpului dintre fiecare eșantion sau canal. În
locul acestei metode de achiziție se poate utiliza sincronizarea hardware, care utilizează un
buffer în memoria computerului, pentru a achiziționa date mult mai eficient. Din punct de
vedere al programării, va trebui inclusă în program o funcție de sincronizare și va trebui
specificat rata de eșantionare și modul de eșantionare. Ca şi în alte funcţii, vom avea
posibilitatea să achiziţionăm eșantioane multiple de la un singur canal sau de la mai multe
canale.
• În acest caz, am putea monitoriza atât nivelul de fluid în rezervor cât şi temperatura. Vom
avea nevoie de două traductoare conectate la doua canale ale plăcii.
Achiziția Continuă
• Utilizată atunci când se dorește vizualizarea unui proces.
Exercițiul 10.1: VI-ul Voltmetru
Obiectiv: Achiziția unui semnal analogic utilizând placa de achiziție NI
USB 6008.
•Se vor completa pașii de mai jos pentru realizarea unui VI care să măsoare
tensiunea conectată la canalul ai0 al plăcii de achiziție
1. Se deschide un VI gol și se va realiza panoul frontal din figură
OBJECTIVE
2. Se va realiza diagrama bloc din figură
a. Plasați VI-ul
• Place the DAQ Assistant Express VI located on the Functions» Input palette, on the block
diagram. Configure this VI to read an analog input channel and return the voltage.
• – Select Analog Input»Voltage for the measurement to make.
• – Select Dev1»ai0 for the physical channel.
• – Click the Finish button.
• – The Analog Input Voltage Task dialog box appears. Configure the Task Timing to Acquire
1 Sample.
• – Click the OK button to close the Analog Input Voltage Task
• Configuration dialog box. This saves the settings specified for the task in the DAQ Assistant
Express VI.
• b. Place the Wait Until Next ms Multiple function, located on the Functions»All
Functions»Time & Dialog palette, on the block diagram. Right-click the input and select
Create Constant from the shortcut menu. Type 100 in the constant to cause the loop to
execute every 100 ms.
• c. Place the Unbundle by Name function, located on the Functions»All Functions»Cluster
palette, on the block diagram. Use this function to access the status from the error cluster.
• d. Place the Or function, located on the Functions»Arithmetic&Comparison»Express
Boolean palette, on the block diagram. This function stops the loop if an error occurs or the
user clicks the power switch on the front panel.
• 3. Save the VI as Voltmeter.vi in the C:\Exercises\LabVIEW Basics I directory. You will use this VI
later in the course.
• 4. Display the front panel and run the VI.
Exercise 9.3

Measurement Averaging VI

Time to complete: 15 min. Page 9-18

To reduce noise in analog measurement


OBJECTIVE

by averaging.
D. Data Logging
•It is often necessary to permanently store data
that is acquired from the DAQ device
•LabVIEW includes the ability to read and write a
LabVIEW Measurement File
•LabVIEW Measurement File is an ASCII text file
Exercise 9.4

Simple Data Logger VI

Time to complete: 15 min. Page 9-20

Learn to use a LabVIEW


OBJECTIVE

Measurement File.
E. Analog Output

Analog Output
task is specific
to the
generation
type
Analog Output Task Timing and
Triggering
Configures the number
of samples and sample
rate for the task

Configures the start and


reference triggers for the
task
Exercise 9.5

Voltage Output VI

Time to complete: 15 min. Page 9-25

To output an analog voltage using the


OBJECTIVE

DAQ device.
F. Counters
A counter is a digital timing device
Typical uses of a counter:
• Event counting Gate Output
• Frequency measurement
Count Register
• Period measurement
• Position measurement Source
• Pulse generation
Count register – Stores the current count of the
counter
Source – Input that causes the counter to increment
each time it toggles
Gate – Input that is used to enable or disable the
function of the counter
Output – Signal that generates pulses or a series of
How does a counter work?

Source

Gate

Count (Output)2 4 6

Counter set to event counting on a rising edge.


Exercise 9.6

Simple Event Counting VI

Time to complete: 15 min. Page 9-29

To create a simple event counting VI.


OBJECTIVE
G. Digital Input and Output
• Digital I/O can
read from or
write to a line
or an entire
digital port
• A digital port
is a collection
of digital lines
Exercise 9.7

Digital Example VI

Time to complete: 15 min. Page 9-32

To control the digital I/O lines on the


OBJECTIVE

DAQ device.
Summary
• MAX is the primary configuration and testing
utility that is available for the DAQ device.
• The DAQ Assistant is used to configure the DAQ
device and perform data acquisition.
• Most application can use the DAQ Assistant. For
applications that require advanced timing and
synchronization use the VIs that come with NI-
DAQmx.
• The DAQ Assistant can perform Analog Input,
Analog Output, Digital I/O, and Counter
operations.