Documente Academic
Documente Profesional
Documente Cultură
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)
• PCI eXtensions for Instrumentation (PXI)
LabVIEW este strâns • Image Acquisition (IMAQ)
integrat cu toate • Motion Control
componentele hardware NI, • Real-Time (RT) PXI
și în plus se poate conecta
• PLC
la mii de dispozitive I/O de
la alte sute de furnizori. • 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 necesitatile. 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
Networked I/O
PC Boards
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
• 2013- LabVIEW 2013 pentru NI Linux Real-Time
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
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
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
Indicator
Numeric
Etichete
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
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 bloc
• Terminale
• 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 realizare de legături – DB
Wiring “Hot Spot” Click To Select Wires
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
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 Code
function average (in1, in2, main
out) {
{ average (point1, point2,
out = (in1 + in2)/2.0; pointavg)
} }
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 Slope
• Unirea unui VI cu alt VI se numește subVI
• Utilizarea unui VI ca un subVI, crează un icon și un conector pane după
construirea front panel și a diagramei bloc
Crearea Icoanei
• Icon: reprezentarea grafică a unui VI
• Clic-dreapta în icoana DB sau a PF și selectare Edit Icon
(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
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.
Output = 5 Output = 5
Uninitialized Shift Registers & Feedback
Nodes
Output = 4 Output = 8
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..
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.
• 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
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
Appending an element
Concatenate Inputs
Extracting an Element
Extracting a Row
• 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ția Rezultatul
Scalar+Scalar Scalar
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 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.)
• 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 Cluster shell 2. Place objects inside the shell
from the Array & Cluster
subpalette
134
Creating Cluster Constants
136
Utilizarea Clusterelor pentru transferul datelor în SubVI-uri
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
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 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.
TOPICS
A. Waveform Charts
B. Waveform and XY Graphs
C. Intensity Plots
Înregistratoare
• Înregistratoarele sunt indicatoare numerice
(Grafice)
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
Use the Context Help window with charts and graphs
C. Intensity Plots and Graphs
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.
• 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
a) b) 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).
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 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 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.
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
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.
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
alvarea (Scrierea) datelor într-un fișier
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
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.
NI-DAQmx pentru achiziția de date
Set de VI-uri utilizate pentru realizarea
operațiilor de I/O anlogice, I/O digitale și a
celor de numărare.
Measurement Averaging VI
Voltage Output VI
Source
Gate
Count (Output) 2 4 6
Digital Example VI