You are on page 1of 28

Planificarea aplicaiilor LabVIEW

A. Planificarea i proiectarea aplicaiilor


LabVIEW
B. Transformarea unui proiect ntr-un
instrument virtual LabVIEW
C. Tehnici de tratare a erorilor
D. Arhitecturi de programare LabVIEW
A. Planificarea i proiectarea
aplicaiilor LabVIEW
ETAPE
Definirea cerinelor
Proiectarea
Dezvoltarea codurilor
Testarea
TOP -
DOWN
BOTTOM -
UP
A. Planificarea i proiectarea
aplicaiilor LabVIEW
Procesul de dezvoltare a unei aplicaii LabVIEW
Definirea
proiectului
Proiectarea
organigramei
generale
Implementarea
VI-urilor
Testarea subVI-
urilor
Integrarea subVI-
urilor n proiect
Testarea i
elaborarea
produsului final
Feedback din
partea clientului
TOP - DOWN BOTTOM - UP
A. Planificarea i proiectarea
aplicaiilor LabVIEW
Elaborarea organigramei generale a proiectului
contribuie la vizualizarea modului de
funcionare global a programului;
stabilete ierarhia general n cadrul
proiectului;
elaborat corespunztor nc de la nceput,
poate economisi din timpul alocat dezvoltrii
aplicaiei.
A. Planificarea i proiectarea
aplicaiilor LabVIEW
Recomandri:
Definire cu precizie a cerinelor sistemului;
Determinare clar a ateptrilor clientului
(utilizatorul);
Documentare asupra operaiilor pe care
trebuie s le realizeze aplicaia;
Sistem deschis - permite viitoare modificri sau
adugri.
B. Procesul de implementare
Dup realizarea procesului de planificare, are loc implementarea aplicaiei, prin
dezvoltarea de sub VI-uri ce corespund organigramei generale.
Definirea clar a ierarhiilor n cadrul cerinelor aplicaiei
Modularizarea aplicaiei (utilizarea subVI-urilor):
Permite testarea separat a diverselor pri ale aplicaiei i combinarea lor ulterioar;
Avantaj fa de varianta elaborrii aplicaiei dintr-o singur diagram bloc, n care,
pentru testare, este nevoie de dezvoltarea ntregii aplicaii; la acest moment poate fi
extrem de dificil s se identifice i corecteze eventualele probleme ce pot aprea n
funcionare;
Permite identificarea facil a eventualelor greeli n modulele de programe i
corectarea lor nainte de a investi timp n implementarea lor;
Ajut la meninerea controlului asupra codului surs i asupra stadiului proiectului n
orice moment;
Permite implementarea ulterioar, mult mai facil, a eventualelor modificri/
actualizri/ mbuntiri ale programului.
C. Tehnici de tratare a erorilor
Trecerea informaiei ntre funcii i subVI-uri cu ajutorul
clustere-lor error in i error out;
Clusterele de eroare conin trei tipuri de informaii:
boolean: indic starea valoarea TRUE pentru o eroare;
numeric: indic numrul erorii;
caracter (string): afieaz care funcie sau subVI a generat eroarea.
Pentru extragerea acestor categorii de informaii se poate
utiliza una din funciile Unbundle sau Unbundle By Name
(din paleta de funcii, meniul Cluster).
Exemplu de utilizare a conceptelor error in / error out:
Fiierul I/O al VI-ului i funciile asociate
utilizeaz clusterele de eroare pentru a
trece informaia de la o operaie la alta.
Pentru anunarea utilizatorului despre
condiiile de apariie a erorilor se pot
utiliza opiunile din meniul Programming /
Dialog & User Interface.
C. Tehnici de tratare a erorilor
Simple Error Handler
Preia eroarea n cluster sau valoarea codului erorii i, n
cazul n care apare o eroare, deschide o fereastr de dialog
care descrie eroarea i prezint posibilele motive ale
apariiei acesteia.
Se poate modifica tipul ferestrei de dialog cu urmtoarele
variante:
afiarea ferestrei de dialog;
neafiarea ferestrei de dialog;
afiarea ferestrei de dialog cu posibilitatea din partea utilizatorului
de a alege s continue sau s opreasc rularea VI-ului.
C. Tehnici de tratare a erorilor
General Error Handler
accept eroarea n cluster sau valoarea codului erorii i, n cazul n
care apare o eroare, deschide o fereastr de dialog care descrie
eroarea i prezint posibilele motive ale apariiei acesteia;
n plus, se pot stabili liste cu excepii de eroare, astfel nct erorile
menionate n aceste liste sunt terse sau dimpotriv, prezentate, n
momentul n care ele apar.
Aceast opiune se poate
folosi i pentru a aduga
erori n tabelul de descriere
a erorilor interne, altele
dect cele prevzute de
LabVIEW.
C. Tehnici de tratare a erorilor
Merge Errors VI
combin mai multe clustere de eroare n unul singur;
se utilizeaz n cazul n care exist mai multe succesiuni de operaii care
ruleaz n paralel, fiecare operaie avnd clusterul de eroare propriu;
Aceast opiune analizeaz clusterele de eroare de la intrare sau tablourile
(array) cu clustere de eroare i afieaz, la ieire, prima eroare
identificat. Dac nu apar erori, LabVIEW returneaz primul mesaj de
atenionare, codul de eroare avnd valoare pozitiv. n caz contrar, nu se
returneaz nici o eroare.
C. Tehnici de tratare a erorilor
Includerea comenzilor de tratare a erorilor n aplicaii
Este util n cazul n care o aplicaie ampl este divizat n mai multe
subVI-uri, pentru a prentmina rularea unui subVI n cazul n care
apare o eroare.
n acest caz, cluster-ul de eroare se poate conecta la o structur Case,
pentru controlul cazurilor de Eroare i, respectiv, Non Erorare.
Aa cum se prezint n exemplul urmtor, codul ce de dorete a rula se
plaseaz n fereastra No Error a structurii Case, apoi se definete
valoarea error out.
C. Tehnici de tratare a erorilor
Exemplu:
C. Tehnici de tratare a erorilor
Aplicaie:
Dezvoltarea unui VI care:
genereaz o funcie sinus afectat de zgomot,
calculeaz caracteristica n frecven a acesteia i
reprezint grafic funcia n domeniul timpului i n domeniul
frecvenei.
VI-ul include clustere de eroare pentru monitorizarea
corespunztoare a condiiilor de apariie a erorilor.
Front
panel
Block diagram
D. Arhitecturi de programare
LabVIEW
Simple
General
Parallel loops
Multiple cases
State Machine
D. Arhitecturi de programare
LabVIEW
Arhitectura simpl - Simple VI
Se utilizeaz pentru aplicaii reduse, simple, de exemplu:
calcule, msurtori rapide, afiarea de rezultate sau
nregistrarea lor pe disc;
De obicei nu necesit o aciune de start/ stop din partea
utilizatorului, putnd fi iniiat la simpla apsare a butonului
Run;
Pe lng utilizarea n aplicaii simple, aceast arhitectur se
utilizeaz pentru componentele funcionale ale aplicaiilor mai
complexe; Simple VI se pot converti n subVI-uri, folosite
ulterior ca module n aplicaii ample.
Exemplu: conversia din grade Celsius n grade Faranheit
VI-ul realizeaz o singur operaie conversia din grade Celsius n grade
Faranheit poate fi ns folosit n alte aplicaii n care este nevoie de
aceast conversie, fr a fi nevoie de scrierea ecuaiei asociate.
D. Arhitecturi de programare
LabVIEW
Arhitectura general - General VI
Proiectarea unei aplicaii presupune, n general, parcurgerea
a trei etape:
STARTUP: iniializarea hardware-ului, citirea informaiilor de
configurare din fiiere;
APLICAIA PRINCIPAL (MAIN APPLICATION): const din
parcurgerea cel puin a unei bucle, ce se repet pn utilizatorul
decide s ias din program, sau programul se termin din alte
motive;
SHUTDOWN: presupune nchiderea fiierelor, scrierea
informaiilor de configurare pe disc sau resetarea I/O la starea
implicit;
Exemplu: diagrama bloc
ilustreaz aceast arhitectur
general. Pentru aplicaii
simple, bucla aplicaiei
principale poate fi direct;
pentru interfee mai complexe
sau evenimente multiple,
aceast seciune devine mai
complicat.
Observaii:
1. Bucla While nu poate ncepe s ruleze pn cnd Startup VI nu a terminat rularea i
returneaz un cluster de eroare. n continuare, Shutdown VI nu poate rula pn cnd
aplicaia principal, n bucla While, nu se termin i rezult clusterul de eroare asociat.
2. Funcia Wait este necesar n majoritatea buclelor, mai ales cnd acestea monitorizeaz
datele de intrare din panoul frontal.
Fr acest funcie, bucla ar putea continua s ruleze la infinit, epuiznd resursele
calculatorului.
Funcia Wait foreaz bucla s ruleze asincron, chiar dac perioada de ateptare este
apropiat de zero milisecunde; de regul, un interval de ateptare de 100-200 ms este
potrivit, deoarece majoritatea utilizatorilor nu vor sesiza ntrzierea ntre apsarea butonului
din panoul frontal i execuia evenimentului urmtor.
D. Arhitecturi de programare
LabVIEW
Arhitectura paralel Parallel Loop VI
Potrivit pentru aplicaiile n care exist evenimente ce se desfoar
simultan.
O modalitate de proiectare a aplicaiei principale este asocierea unei bucle
diferite pentru fiecare eveniment n parte.
Avantaj: evenimentele/ procesele pot fi gestionate foarte bine n paralel,
independent unul fa de cellalt.
Dezavantaj: coordonarea i comunicarea ntre bucle diferite poate fi deficitar.
n exemplul urmtor: butonul STOP al celei de-a doua bucle reprezint o
variabil local. Nu se pot folosi conexiuni pentru trecerea datelor de la o bucl
la alta (aceasta ar mpiedica rularea n paralel).
Prin urmare, trebuie folosite tehnici globale de trecere a informaiei de la un
proces la altul, ceea ce poate conduce la rezultate incompatibile i dificil de
depanat.
Exemplu:
D. Arhitecturi de programare
LabVIEW
Arhitectura multiple case Multiple Case Structure VI
Potrivit pentru aplicaiile n care trebuie gestionate evenimente
multiple, cu trecerea datelor de la un eveniment la altul.
n locul utilizrii mai multor bucle, se poate utiliza una singur, ce
conine structuri Case separate pentru gestionarea fiecrui eveniment
n parte.
Acest tip de arhitectur se utilizeaz, de asemenea, n situaia n care
pe panoul frontal exist mai multe butoane, fiecare iniiind un
eveniment diferit.
Avantaj: se pot utiliza conexiuni (wires) pentru trecerea datelor ntre
evenimente.
Aceasta reduce necesitatea utilizrii datelor globale, mbuntind
calitatea rezultatelor. Se pot utiliza regitri de transfer (shift register)
pentru reinerea valorilor de la o iteraie la alta.
Exemplu:
Dezavantaje:
Pot rezulta diagrame bloc complexe, dificil de citit, editat i depanat.
Deoarece toate evenimentele sunt n aceeai bucl, fiecare dintre ele
este gestionat n serie; n consecin, dac un eveniment ia un timp
mai ndelungat, bucla nu poate gestiona alte evenimente n acel timp;
Aceasta genereaz o alt problem conex: evenimentele sunt rulate cu
aceeai vitez, deoarece nici unul dintre ele nu se poate repeta nainte
ca ntreaga bucl While s fie parcurs.
D. Arhitecturi de programare
LabVIEW
Arhitectura State Machine State Machine VI
Potrivit pentru obinerea unor diagrame bloc mai compacte, prin
utilizarea unei singure structuri Case pentru gestionarea
evenimentelor din cadrul unei aplicaii.
Aceast arhitectur reprezint o metod foarte util pentru VI-urile
ce pot fi uor divizate n sarcini mai simple.
Se poate genera State Machine n LabVIEW cu o bucl While, o
structur Case i un registru de transfer (shift register).
Fiecare stare a State Machine reprezint un caz n structura Case.
Registrul de transfer memoreaz starea ce trebuie executat n
cadrul urmtoarei iteraii a buclei.
Exemplu:
Stri posibile:
startup, idle, event 1, event 2 i shutdown
Fiecare din strile definite n VI are cazul su (n cadrul
structurii Case). n timp ce este rulat o stare, se determin
starea urmtoare pe baza rezultatului curent; starea ce
urmeaz s ruleze se memoreaz n registrul de transfer.
Cnd apare o eroare, indiferent de stare, se aplic shutdown.
Avantaje:
Reducerea dimensiunii diagramei bloc, ceea ce o face mai uor de
citit, editat i depanat.
Dezavantaje:
Exist posibilitatea pierderii (neexecuiei) unor evenimente: dac
dou evenimente apar n acelai timp, se va gestiona doar primul,
iar cel de-al doilea se va pierde.
Aceasta poate conduce la erori dificil de depanat.
Variantele mai complexe ale arhitecturilor de tip State machine
conin coduri suplimentare care genereaz o list de ateptare
pentru evenimente/ stri, astfel nu se pierde execuia unora dintre
acestea.

You might also like