Documente Academic
Documente Profesional
Documente Cultură
LabView este un limbaj de programare grafic (limbaj G) care folosete diagrame bloc n loc de
linii de text pentru a crea aplicaii.
Este destinat n special, construirii de aplicaii pentru controlul i achiziia de date, analiza
acestora i prezentarea rezultatelor
LabView a fost dezvoltat de firma National Instruments, prima variant a programului aprnd 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 programrii datorit introducerii unei interfee grafice mai
intuitive.
Mediile de programare grafic nltur necesitatea cunoaterii unui limbaj de programare. n
locul descrierii algoritmului de calcul sub forma unui set de instruciuni n format text, ntr-un
mediu de programare grafic algoritmul este descris desenndu-l sub forma unei scheme
logice (organigram, diagram). Dispare astfel necesitatea memorrii unor nume de instruciuni
i a unor reguli complicate de sintax, iar riscul de apariie a erorilor de programare scade
drastic. Modul n care algoritmul este descris este astfel mult mai intuitiv, un program putnd fi
neles mult mai uor i de ctre ali programatori dect cel care l-a conceput.
LabVIEW este cel mai rspndit i mai evoluat mediu de programare grafic.
Dei LabVIEW este un instrument foarte puternic de simulare, acesta este cel mai adesea
folosite pentru achiziia, analiza i prezentarea datelor de la diferite surse externe, coninnd n
librria sa, multe instrumente virtuale special dedicate acestui scop.
De exemplu LabVIEW poate comanda plci de achiziie pug-in sau pe USB pentru achiziia sau
generarea semnalelor analogice i numerice.
S-ar putea utiliza plcile DAQ i LabVIEW pentru a monitoriza temperatura, trimite semnalele de
la un sistem extern, sau determinarea frecvenei unui semnal necunoscut.
LabView permite achiziia semnalelor de la o varietate de echipamente. Se pot achiziiona date
de la instrumente GPIB, seriale, Ethernet, PXI i VXI, folosind driverele incluse. Exist
posibilitatea comunicrii cu mai mult de 1400 instrumente aparinnd a 150 de productori,
folosind driverele de comunicaie LabView. Programul ofer performan i portabilitate ridicate.
Driverele de comunicaie simplific controlul instrumentelor i timpul de dezvolatare a noi
aplicaii, eliminnd necesitatea de a nva 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 comunicaie, cum ar fi GPIB sau serial, folosind acelai cod
LabView. Indiferent pe ce tip de bus este instrumentul, driverele VISA preiau controlul
protocoalelor de comunicare respective.
Achiziia cu LabVIEW
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 instrumentaie ale crui baze au fost puse nc din 1987 i are ca obiectiv creterea
interoperabilitii diverselor instrumente. Structura sa modular permite o integrare att din punct de
vedere electronic, ct i mecanic, conferindu-i denumirea de standard pentru instrument pe cartel.
Specificaiile VXI grupeaz norma IEEE-488 i norma VME, prima remarcndu-se prin compatibilitatea
ntre constructori diferii, iar cea de-a doua prin rapiditate.
Analiz cu LabVIEW
O analiz intens a
msurrii este realizat n
mediul de dezvoltare
LabVIEW.
Prezentare cu LabVIEW
LabVIEW include urmtoarele
instrumente utilizate pentru
prezentarea datelor:
Prezentarea cu
LabVIEW poate fi
facuta pe PC sau
printr-o reea.
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
Diagrama Bloc
Program ce nsoete
panoul frontal
Componentele sunt legate
mpreun
B. Mediul LabVIEW
Creating a new VI
To open a blank VI
Select FileNew VI
Click the arrow on the New
button and select Blank VI
To open the New dialog box
Select FileNew
Click the New button
Control
Boolean
Icoan
Legenda
Graficului
Indicator
Grafic
Plot
Legend
Legenda
Scalei
Funcia
Divide
SubVI
Terminalul
Grafic
Fire
de date
Structur
While Loop
Constant
Numeric
Funcia
Timing
Terminalul
Control Boolean
Font ring
Alignment ring
Abort button
Distribution ring
Pause/Continue button
Resize ring
Warning indicator
Enter button
Broken Run button
Reorder ring
Additional Buttons on the Block
Context Help Button
Diagram Toolbar
Execution Highlighting button
Step Into button
Step Over button
Step Out button
Tools Palette
LabVIEW automatically selects the tool needed
Available on the front panel and the block diagram
Controls Palette
Contains the most commonly used controls
Functions Palette
Contains the Express VIs (interactive VIs with
configurable dialog page) and the most commonly used
functions
Etichete
Butoane pentru
incrementare
Control
Boolean
Indicator
Boolean
Indicator
Numeric
Control
Numeric
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
Diagrama Bloc
Control
Terminals
Indicator
Terminals
Wires
Nodes
Funcie
VI Expres
VI Standard
Expandable Node
Function Generator VI
Same VI, viewed three different ways
Yellow field designates a standard VI
Blue field designates an Express VI
Expanded Node
Legturi (fire) n DB
Dynamic
Albastru
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
ItemsTerminals
View the terminal connections to a function
Use Automatic
Wire Routing
Clean Up Wiring
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 fr 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 Booleene
Datele Booleene sunt date de tip logic. Acestea au dou valori: ADEVRAT i
FALS. Datele Booleene sunt reprezentate prin dou stri 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 funcii logice. Exist ase moduri de
operare al acestora.
1. Switch when pressed (Comut cnd este apsat)
2. Switch when released (Comut cnd este eliberat)
3. Switch until released (Comut pn cnd este eliberat)
4. Latch when pressed (nchide cnd este apsat)
5. Latch when released (nchide cnd este eliberat)
6. Latch until released (nchide pn cnd este eliberat)
Lock Help
More Help
LabVIEW Help
Click the More Help button in the Context Help window
Select HelpVI, 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.
Exerciiu: Convert C n F
G. Tehnici de reparare
Gsirea erorilor
Clic n butonul Run ntrerupt
Fereastra va arta erorile aprute
Sublinierea execuiei
Clic n butonul Execution Highlighting; fluxul de
date este animat utiliznd baloane. Valorile sunt
afiate pe fire.
Probe
Clic-dreapta pe un fir pentru afiarea probei i a
datelor ce curg prin seciunea 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
<Ctrl-R>
<Ctrl-F>
<Ctrl-H>
<Ctrl-B>
<Ctrl-W>
<Ctrl-E>
Sun
<-R>
<-F>
<-H>
<-B>
<-W>
<-E>
Linux
<M-R>
<M-F>
<M-H>
<M-B>
<M-W>
<M-E>
MacOS
<z-R>
<z-F>
<z-H>
<z-B>
<z-W>
<z-E>
Run a VI
Find object
Activate Context Help window
Remove all broken wires
Close the active window
Toggle btwn Diagram/Panel Window
3. Programare Modular
SUBIECTE
A. SubVI-uri
B. Panoul Icoan i Conector
C. Utilizarea SubVI-urilor
D. Crearea unui SubVI dintr-o seciune a unui VI
A. Ierarhia LabVIEW
SubVI
SubVI-uri
Dup construirea unui VI i crearea icoanei i conectorului
su, acesta poate fi utilizat ntr-un alt VI. Un VI dintr-un alt VI
se numeste subVI. Un subVI corespunde unei subrutine ntrun limbaj de programare pe baz de text.
Avantaje
Modular
Uor de reparat
Nu trebuie recreat codul
Necesit mai puin memorie
main
{
average (point1, point2,
pointavg)
}
Nodurile n DB
SubVI-urile din DB se pot vedea ca icoane sau ca noduri expandabile. Cele dou moduri, depind de preferinele
utilizatorului, nemodificndu-se funcionalitatea subVI-ului
B. Icoana i Conectorul
Fiecare VI afiaz o icoan n colul din dreapta sus a PF i a DB. O icoan este o reprezentare
grafic a unui VI. Ea poate conine text, imagini sau combinaii de ambele. Icoana identific subVI-ul
dintr-o DB a unui VI.
ICOANA
Terminale
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.
Crearea Icoanei
Icon: graphical representation of a VI
Clic-dreapta n icoana DB sau a PF i selectare Edit Icon
Default Icon
Crearea Conectorului
Clic dreapta n panoul icoan (doar n PF)
Asignarea Terminalelor
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.
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
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 pn cnd este ntlnit o condiie.
Terminal
iteraie
(Execut diagrama
din interiorul buclei)
While Condition is TRUE
Terminal condiionare
Terminal iteraie
Terminal condiionare
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.
B. Bucla For
O bucl For execut o subdiagram de un numr de ori, numr specificat de
terminalul de numrare N.
Plasai bucla For n DB selectnd-o din paleta Structs & Constants aflat n meniul Functions.
O bucl For este un element redimensionabil.
Ea execut diagrama din interiorul su de un numr predeterminat de ori.
Bucla For are dou terminale: terminalul de numrare N (un terminal de intrare) i terminalul
de iterare i (un terminal de ieire). Terminalul de numrare arat de cte ori se execut bucla.
Terminalul de iteraie arat de cte ori a fost executat bucla.
Pe marginile buclei se pot crea regitri de deplasare care transfer datele de la o iteraie la
urmtoarea
Terminalul de numrare
(terminal de intrare)
Terminal iteraie
(terminal de ieire)
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.
C. Regitrii 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.
VI-ul din figura de mai jos folosete 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 folosete 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
FunctionsStructures palette
Output = 5
Output = 5
Run Once
VI stops execution
Output = 5
Run Again
Output = 5
Output = 4
Run Once
VI stops execution
Output = 4
Output = 8
Run Again
Output = 8
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 colecie de elemente ale datelor care sunt toate de acelai tip.
Un tablou are una sau mai multe dimensiuni i pn la 2^31 1 de elemente pe dimensiune,
sau ct permite memoria.
Tablourile, n LabVIEW, pot fi de orice tip: numerice, Booleane, tip cale, stringuri, unde, i tip
clustere (exceptnd iruri, tabele sau grafice).
Se poate accesa fiecare element al tabloului prin index-ul su. Index-ul este n gama (0, N-1)
unde N este numrul elementelor din tablou. Tabloul unidimensional (1D) artat mai jos
ilustreaz aceast structur. De notat c primul element are index-ul 0, al doilea element are
index-ul 1, etc..
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 este mai mare.
EXERCITIU
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.
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
Funcii Array
Pentru a obtine in
mod dinamic
(programatic),
structuri de
valori de tipul
Array, pot fi
utilizate o serie
de functii
specifice.
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
Concatenate Inputs
default
Extracting 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 Arrayuri 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.
D. Polimorfism
Poliformismul reprezint capabilitile funciilor din LabView (de ex. adunare, nmulire, mprire)
de a accepta la intrare date cu dimensiuni i reprezentri diferite. Funciile aritmetice care posed
aceste proprieti se numesc funcii polimorfice.
Un exemplu clasic pentru aceast proprietate este poliformismul funciei adiionale scalar scalar,
scalar matrice i matrice-matrice de dimensiuni diferite.
Combinaia
Scalar+Scalar
Array+scalar
Array+Array
Array+Array
Rezultatul
Scalar
Array
Array
Array
Exerciii
1. S se creeze un VI cu 6 intrri booleane (opional) i care s returneze numrul primei intrri
adevrate (opional).
Exerciii (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 ControlsArray
& 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 autoindexing in While Loops.
Polymorphism is the ability of a function to adjust to input data of different data
structures.
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.)
134
Cluster Order
Elements have a logical order (start with 0)
To change order, right-click the border and select Reorder Controls in
Cluster...
136
137
B. Funcii Cluster
Aceste funcii se gsesc n subpaleta Cluster, Class & Variant a paletei
Functions>>Programming
Funcia Bundle
Grupeaz mai multe componente, realiznd un grup, sau
nlocuiete una sau mai multe componente ale unui grup existent.
Gruparea elementelor se realizeaz n ordinea acestora n cadrul grupului. Prima component conectat
la funcia Bundle este componenta cu index-ul 0, urmeaz componenta cu index-ul 1, s.a.m.d. Numrul
de intrri poate fi modificat fie prin selectarea Add Input din meniul contextual al intrrii fie utiliznd
unealta de poziionare / redimensionare din caseta Tools.
Funcia 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 funciei.
n cadrul aplicaiei de mai jos, funcia bundle permite nlocuirea valorii numerice
corespunzatoare controlului Knob i respectiv a controlului Numeric 2, cu
valorile numerice corespunztoare controalelor knob_input, respectiv Numeric
2_input.
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 ControlsArray & Cluster palette include the components
of information shown
Error cluster contains the following information:
Boolean to report whether error occurred
Integer to report a specific error code
String to give information about the error
Error Cluster
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.
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 ControlsArray
& Cluster palette, place it on the front panel, and drag controls or indicators
into the cluster shell.
Use the Cluster functions located on the FunctionsAll FunctionsCluster
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. Afiarea datelor
TOPICS
A. Waveform Charts
B. Waveform and XY Graphs
C. Intensity Plots
nregistratoare (Grafice)
nregistratoarele sunt indicatoare numerice
speciale care afieaz una sau mai multe curbe.
Acestea se gsesc 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)
Scale Legend
Graph Palette
Uniform X axis
you specify point
spacing
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
Exemple:
Se va realiza un VI care s genereze un numr aleator la o rat specificat de
utilizator i afiarea rezultatelor pe un grafic (Waveform Chart) pn cnd este
oprit de utilizator. Se va salva salva VI-ul cu numele While_Graph.vi
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.
secvenial (Sequence)
TOPICS
A. Decision making with the Select function
B. Case Structures
C. Formula Nodes
D. Structura Sequence
B. Case Structures
Structura de selectie Case - contine multiple subdiagrame, numai
una din acestea executandu-se depinznd 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).
Enum Case
Error Case
C. Formula Node
Note semicolon
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 alturat se prezint o structur secvenial 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 utilizrii structurii secveniale stiv este prezentat n figura de mai jos
a)
b)
c)
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 2311 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 output tunnels on
the structure appear as white squares.
Formula Nodes are useful for complicated equations and for using
existing text-based code. A semicolon (;) must terminate each statement.
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
\ code display
Password display
Hex display
B. Funcii String
Funciile pentru valorile alfanumerice sunt grupate n subpaleta String a paletei de funcii.
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 conine un element
String Constant utilizat
pentru introducerea n
diagram a valorilor
alfanumerice constante.
Funcia String Subset extrage, din textul conectat la intrarea String, o poriune
de Length caractere ncepnd de la caracterul aflat la poziia Offset inclusiv
(pentru primul caracter se consider offset = 0). Dac la intrarea Offset a funciei
nu este introdus nici o valoare, funcia consider c extragerea se va efectua
ncepnd cu primul caracter (valoarea implicit 0 a intrrii offset). Dac la intrarea
Length nu este introdus nici o valoare, funcia consider c extragerea se va
efectua pn la ultimul caracter inclusiv.
Funcia Search and Replace String caut textul Search String n textul conectat la intrarea
String, iar cnd l gsete, l nlocuiete cu textul conectat la intrarea Replace String. Cutarea
are loc ncepnd de la poziia Offset a textului String. Dac la intrarea Offset nu se conecteaz
nici o valoare, cutarea are loc ncepnd cu prima poziie. Dac la intrarea Replace String nu se
conecteaz nici o valoare, atunci funcia efectueaz o tergere (nlocuire cu text vid). Dac la
intrarea Replace All nu se conecteaz nici o valoare, atunci funcia se oprete dup prima
apariie a textului Search String. Dac la aceast intrare se conecteaz o valoare logic de tip
True, funcia efectueaz nlocuiri pentru toate apariiile textului Search String. Funcia genereaz
textul rezultat n urma nlocuirii la ieirea Result String, iar la ieirea Offset Past Replacement
genereaz o valoare indicnd poziia caracterului aflat imediat dup ultimul caracter nlocuit.
Exerciii
1. S se realizeze un VI care s converteasc un numr i un control slide (Trailer) ntr-un string i
care s concateneze acest string cu un alt string (Header) astfel nct s rezulte un singur string de
ieire. VI-ul va determina de asemenea lungimea stringului de ieire.
2. S se realizeze un VI care s converteasc un numr ntr-un string i care s concateneze acest string cu alte stringuri astfel nct s rezulte
un singur string de ieire. VI-ul va determina de asemenea lungimea stringului de ieire.
3. Se va realiza un VI care s exemplifice modul de creare a unui tabel n care fiecare coloan corespunde unei variabile diferite
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.
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.
Citete
i/sau
Scrie n Fiier
nchide
Fiier
Verific
Erorile
Tab
End of Line
LabVIEW Measurement
Writer_Version
Reader_Version
Separator
Decimal_Separator
Multi_Headings
X_Columns
Time_Pref
Operator
Date
Time
***End_of_Header***
Channels
Samples
Date
Time
X_Dimension
X0
Delta_X
***End_of_Header***
X_Value
2
2
Tab
,
Yes
No
Relative
Mihai
2009/04/27
11:01:18,363543
1
100
2009/04/27
11:01:18,363543
Time
0,0000000000000000E+0
0,001000
Sine
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
Comment
Exemplificarea citirii unui fiier de msurtori test_2.lvm i vizaualizarea informaiei acetuia este
prezentat n figura de mai jos.
4400Ohm
Resistor
Laptop
+12V supply
USB
LabVIEW
RTD
NI 6008
VI
NI-DAQ conine:
NI-DAQ traditional
NI-DAQmx
Cadrul general al
software-ului de msurare
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.
n figura de mai jos se pot oberva posibilitiile oferite de acest component software: se
poate efectua un autotest (Self-Test) pentru a vedea dac echipamentul selectat
funcioneaz bine, un test de verificare (Test Panels), se poate crea o activitate (Create
Task) care se poate include n program, se poate vedea configuraia pinilor (Device
Pinouts), proprietiile placii (Properties).
Se poate efectua un test n care se pot regla i testa mai multe elemente. Acest test se numete
Test Panels. Un asemenea test este prezentat n figura de mai jos. n acest test se pot testa
intrarile analogice la care trebuie menionat valoarea maxim i minim a intervalului de msurare,
frecvena (Rate) i numrul de eantioane (Samples To Read), ieirile analogice, linii digitale I/O,
numrtoarele (counter/timer).
C. Intrare analogic
Intrarea analogic este utilizat
pentru realizarea conversiilor
analog-digitale (A/D)
Tipurile de msurare disponibile
n aceast aplicaie sunt:
tensiune, temperatur, efort
(for), curent rezisten sau
frecven.
Fiecare tip de msurare are
propriile caracteristici, cum ar fi
valoarea rezistenei pentru
msurarea curentului sau
parametrii mrcii tensometrice
pentru msurarea efortului
(forei)
Atunci cnd se realizeaz o aplicaie de intrare analogic, aceasta poate fi setat s achiziioneze 1
Eantion, n Eantioane sau o achiziionare Continu.
Achiziia 1 Eantion
Achiziia unui singur eantion este o operaie la cerere. Cu alte cuvinte, NI-DAQmx achiziioneaz o
valoare la o intrare a canalului i imediat returneaz valoarea. Aceast operaie nu necesit sincronizare
hardware. De exemplu, dac se monitorizeaz periodic nivelul de fluid ntr-un rezervor, vor trebui
achiziionate un singur punct de date. Traductorul conectat la rezervor va produce o tensiune
reprezentnd nivelul fluidului, la un singur canal al dispozitivului de msurare iniiind un singur punct de
achiziie.
Achiziia n Eantioane
O modalitate de a achiziiona eantioane multiple de la unul sau mai multe canale, const n achiziia de
eantioane singulare n mod repetat. Totui, achiziionnd un singur eantion de date, de la unul sau
mai multe canale, de mai multe ori, este ineficient i consum timp. Mai mult dect att, va lipsi
controlul asupra timpului dintre fiecare eantion sau canal. n locul acestei metode de achiziie se poate
utiliza sincronizarea hardware, care utilizeaz un buffer n memoria computerului, pentru a achiziiona
date mult mai eficient. Din punct de vedere al programrii, va trebui inclus n program o funcie de
sincronizare i va trebui specificat rata de eantionare i modul de eantionare. Ca i n alte funcii, vom
avea posibilitatea s achiziionm eantioane multiple de la un singur canal sau de la mai multe canale.
n acest caz, am putea monitoriza att nivelul de fluid n rezervor ct i temperatura. Vom avea nevoie
de dou traductoare conectate la doua canale ale plcii.
Achiziia Continu
Utilizat atunci cnd se dorete vizualizarea unui proces.
OBJECTIVE
a. Plasai 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 InputVoltage for the measurement to make.
Select Dev1ai0 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 FunctionsAll FunctionsTime & 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 FunctionsAll FunctionsCluster palette, on the
block diagram. Use this function to access the status from the error cluster.
d. Place the Or function, located on the FunctionsArithmetic&ComparisonExpress 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
OBJECTIVE
Page 9-18
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
OBJECTIVE
Page 9-20
E. Analog Output
Exercise 9.5
Voltage Output VI
OBJECTIVE
Page 9-25
F. Counters
A counter is a digital timing device
Typical uses of a counter:
Event counting
Frequency measurement
Period measurement
Position measurement
Pulse generation
Gate
Output
Count Register
Source
Source
Gate
Count (Output)
Exercise 9.6
Simple Event Counting VI
OBJECTIVE
Page 9-29
Exercise 9.7
Digital Example VI
Time to complete: 15 min.
Page 9-32
OBJECTIVE
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.