57
E. Timing a VI Atunci când o buclă termină execuția unei iterații, imediat începe executarea următoarei iterații, bineînțeles dacă nu este întâlnită o condiție de stop. Most often, you need to control the iteration frequency or timing. For example, if you are acquiring data, and you want to acquire the data once every 10 seconds, you need a way to time the loop iterations so they occur once every 10 seconds. This section introduces some methods for timing your loops.

E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

E. Timing a VI

• Atunci când o buclă termină execuția unei iterații, imediat începe executarea următoarei iterații, bineînțeles dacă nu este întâlnită o condiție de stop.

• Most often, you need to control the iteration frequency or timing. For example, if you are acquiring data, and you want to acquire the data once every 10 seconds, you need a way to time the loop iterations so they occur once every 10 seconds.

• This section introduces some methods for timing your loops.

Page 2: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Wait Functions

• Plasarea unei funcții de așteptare în interiorul unei

bucle, permite VI-ului să “doarmă” un anumit interval

de timp. Acest lucru permite procesorului să abordeze

alte sarcini. Funcțiile Wait utilizează practic ceasul

sistemului de operare.

The Wait Until Next ms Multiple Function monitors a

millisecond counter and waits until the millisecond

counter reaches a multiple of the amount you specify.

Use this function to synchronize activities. Place this

function in a loop to control the loop execution rate. For

this function to be effective, your code execution time

must be less than the time specified for this

function.The execution rate for the first iteration of the

loop is indeterminate.

Page 3: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

The Wait (ms) Function waits until the millisecond

counter counts to an amount equal to the input you

specify. This function guarantees that the loop

execution rate is at least the amount of the input you

specify.

Elapsed Time

In some cases, it is useful to determine how much time

elapses after some point in your VI. The Elapsed Time

Express VI indicates the amount of time that elapses

after the specified start time. This Express VI keeps

track of time while the VI continues to execute. This

Express VI does not provide the processor with time to

complete other tasks.

Page 4: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

F. Iterative Data Transfer. Regiștrii

de transfer (deplasare)

• La programarea cu bucle (While sau For), de

multe ori trebuiesc acceste datele din iterațiile

anterioare.

• De exemplu, daca achizitionam date la fiecare

iterație a unei bucle, și dorim sa calculăm

media la fiecare 5 iterații, este necesară

reținerea datelor din iterațiile anterioare.

• In acest caz se utilizează regiștrii de transfer.

Page 5: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Shift registers are similar to static variables

in text-based programming languages.

• A shift register appears as a pair of

terminals directly opposite each other on the

vertical sides of the loop border.

• 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.

Page 6: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• 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.

Page 7: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• 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.

• A shift register transfers any data type and

automatically changes to the data type of the first object

wired to the shift register. The data you wire to the

terminals of each shift register must be the same type.

Page 8: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Terminalul stang al unui registru de transfer poate fi dimensionat, capatand astfel mai multe componente. Intr-o astfel de situatie, valoarea transferata din iteratia anterioara se afla in componenta superioara.

• De sus in jos, fiecare componenta contine cate o valoare

provenita dintr-o iteratie mai indepartata.

• Dupa executarea ultimei iteratii a buclei, din terminalul drept al

registrului se poate extrage ultima valoare transferata acestuia.

• O structura repetitiva poate contine mai multi registri de

transfer, fiecare cu una sau mai multe componente ale

terminalului stang si fiecare transferand intre iteratii valori de

diverse tipuri.

Page 9: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• VI-ul din figura de mai jos folosește registrii de deplasare si o bucla For, pentru a accesa valorile din repetarile anterioare. Indicatorul X(i) afiseaza valoarea curenta, indicatorul X(i-1) afiseaza valoarea penultimei iteratii, indicatorul X(i-2) afiseaza o valoare cu doua iteratii in urma, si asa mai departe.

Page 10: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Initialized Shift Registers

Run Once VI stops execution Run Again

Output = 5 Output = 5

Page 11: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Uninitialized Shift Registers

Run Once VI stops execution Run Again

Output = 8 Output = 4

Page 12: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

G. AFIȘAREA DATELOR

• Mediul de programare LabVIEW dispune, în

meniul Graph al paletei de controale, de o

serie de elemente pentru reprezentari grafice.

• Cele mai utilizate sunt cele aflate pe prima

linie a meniului Graph:

Waveform Chart (numit pe scurt Chart);

Waveform Graph (numit pe scurtGraph) și

XY Graph.

Page 13: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Figure 2.16. Paleta Controls și subpaleta Graph

Page 14: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Elementul Waveform Chart

• Unui element de tip Chart i se pot trimite în mod succesiv, punct cu punct, valorile ordonatelor punctelor pe care sa le traseze grafic.

• Acesta afișază și reține datele care au fost achiziționate și de asemenea adaugă noile date achiziționate.

• Un element de tip Chart considera valorile succesive pe care le primeste drept ordonate ale punctelor de pe grafic. Abscisele punctelor sunt considerate automat crescatoare din unitate în unitate (0 pentru prima valoare primita, 1 pentru a doua s.a.m.d.).

Page 15: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Bucla While executa câte o iteratie la fiecare trei secunde (datorita functiei Wait (ms)). La fiecare iteratie, functia Random Number (0-1) trimite câte o valoare aleatoare la elementul Chart.

• Atunci când primeste o noua valoare, un element Chart traseaza un segment de dreapta din punctul cel mai recent (ultimul de pe grafic) pâna în punctul determinat de noua valoare primita.

Page 16: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Un element Chart accepta nu numai valori

trimise punct cu punct (scalare) ci si siruri de

valori (Array).

• Atunci când primeste un sir de valori

(considerate de asemenea tot ordonate ale

punctelor), un element Chart adauga la

sfârsitul graficului deja existent, nu un singur

punct ci un numar de puncte egal cu

numarul de valori din sirul primit.

Page 17: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• În figura de mai jos, la fiecare iteratie a buclei While (la

fiecare trei secunde), bucla For genereaza un sir

(Array) de sapte valori aleatoare, sir ce este trimis

elementului Chart.

• La fiecare trei secunde, la graficul din elementul

Chart sunt adaugate astfel înca sapte puncte.

Page 18: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Waveform charts can display multiple plots together using the Bundle function located on the Cluster, Class & Variant palette. In Figure 2.19, the Bundle function bundles the outputs of the three VIs to plot on the waveform chart.

Figure 2.19. Wiring

Multiple Plots to a

Waveform Chart

Page 19: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Dacă un element Chart primeşte o matrice de

valori numerice (Array cu două dimensiuni),

atunci el va trasa simultan un număr de

grafice, egal cu numărul de linii ale matricei.

Indicatorul Waveform Graph

• Un element de tip Graph nu acceptă valori

individuale (scalare) ci numai şiruri (Array) de

valori. Spre deosebire de elementele Chart,

atunci când primeşte un şir de valori,

elementul Graph şterge graficul pe care îl

afişase anterior şi afişează doar graficul

format din noile puncte primite.

Page 20: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Pentru a vedea diferența dintre un Chart și un Graph, se va implementa VI-ul a cărei Diagramă Bloc este prezentată mai jos.

Page 21: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Graficul se va schimba şi în elementul Graph la

fiecare trei secunde dar, spre deosebire de cel

afişat de Waveform Chart, la afişarea unui şir

nou valorile afişate anterior se vor pierde.

• Un element de tip Graph consideră, de

asemenea, valorile succesive pe care le

primeşte drept ordonate ale punctelor de pe

grafic, iar abscisele punctelor sunt considerate

automat crescătoare din unitate în unitate (0

pentru prima valoare primită, 1 pentru a doua

ş.a.m.d.).

Page 22: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Elementele de tip Graph permit însă,

suplimentar, definirea abscisei primului punct şi

a distanţei pe orizontală dintre două puncte

succesive. În această situaţie, valorile x0 şi Δx

se introduc (printr-o funcţie Bundle) într-un

Cluster împreună cu şirul de valori ce

reprezintă ordonatele punctelor, iar la terminalul

elementului Graph se conectează ieşirea

funcţiei Bundle.

Page 23: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Figure 2.17. Definirea valorilor x0 şi Δx

Page 24: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Dacă un element Graph primeşte o matrice de valori numerice (Array cu două dimensiuni), atunci el va trasa simultan un număr de grafice egal cu numărul de linii ale matricei.

Figure 2.23. Multiple-Plot Waveform Graphs

Page 25: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• În situaţia în care se trasează mai multe grafice şi se

doreşte definirea abscisei x0 a primului punct şi a

distanţei Δx pe orizontală dintre două puncte succesive,

mărimile respective vor fi aceleaşi pentru toate graficele.

În funcţia Bundle, la cea de a treia intrare se

conectează matricea de valori.

Page 26: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice
Page 27: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Indicatorul XY Graph

• Indicatorul de tip XY Graph acceptă la

intrare un Cluster format din două şiruri

(Array) de valori. Primul şir reprezintă

abscisele, iar cel de-al doilea ordonatele

punctelor de pe grafic. Evident, cele două

şiruri trebuie să conţină acelaşi număr de

valori. Atunci când se primeşte o astfel de

structură de date, graficul anterior este

şters.

Page 28: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Figure 2.24. The XY Graph Indicator

Page 29: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• În figura de mai jos este arătat un program

pentru trasarea graficului funcţiei sinus între 0

şi 2π prin 101 puncte.

Fig.2.25. Diagrama bloc pentru generarea graficului

funcţiei sinus

Page 30: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Stabilind că punctele vor fi la distanţe egale pe

orizontală, se determină întâi distanţa Δx pe

abscisă dintre două puncte succesive,

împărţind la 100 intervalul de trasare, de

lungime 2π.

• Într-o buclă For cu numărul de iteraţii egal cu

numărul de puncte, se determină la fiecare

iteraţie abscisa unui punct cu relaţia xi= i·Δx şi

se calculează ordonata y=sin(xi). La ieşirea din

bucla For, şirurile de valori xi şi yi sunt grupate

într-un cluster (cu funcţia Bundle), iar acesta

este trimis la terminalul elementului XY Graph.

Page 31: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Dacă se doreşte trasarea

simultană a mai multor grafice

se construieşte pentru fiecare

grafic câte un Cluster format

din două Array-uri (unul

pentru abscisele şi altul

pentru ordonatele punctelor).

Ieşirile funcţiilor Bundle se

conectează la o funcţie Build

Array, iar ieşirea funcţiei

Build Array se conectează la

terminalul elementului XY

Graph.

Page 32: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Opţiuni proprii indicatoarelor grafice

• În meniurile proprii ale indicatoarelor grafice se află

sub-meniul Visible Items, care conţine o serie de

opţiuni conform listei din figura de mai jos, prin

intermediul cărora se pot obţine facilităţi de afişare.

Fig. Opţiunile din

submeniul Visible

Items

Page 33: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Selectând opţiunea Plot Legend, ca pe figura precedentă, se afişează o legendă, ca în figura alăturată, ce poate fi poziţionată independent, sau dimensionată pentru a avea un număr de poziţii egal cu numărul de grafice reprezentate. Numele graficelor (iniţial Plot 0, Plot 1 s.a.m.d.) pot fi modificate cu ajutorul uneltei de editare a textelor. Fig. Opţiunea Plot Legend

Page 34: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Apăsând butonul drept al mouse-ului atunci când cursorul este poziţionat deasupra unui grafic din legendă, se deschide un meniu propriu din care pot fi configurate opţiuni de afişare ale graficului respectiv: culoare, tip şi grosime de linie.

• Opţiunea Scale Legend, din acelaşi submeniu şi redată în figura următoare, afişează o componentă ce permite configurarea modului în care sunt afişate scalele indicatorului de reprezentare grafică: eticheta scalei, formatul şi precizia de reprezentare, vizibilitatea scalei sau a etichetei acesteia, culoarea caroiajului.

Page 35: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Pentru fiecare scală sunt

disponibile:

un buton (notat cu X sau Y),

la a cărui apăsare se

realizează o autoscalare pe

direcţia respectivă;

un buton (marcat cu un lacăt) care, atunci când este

apăsat, menţine continuu autoscalarea pe direcţia

corespunzătoare.

• De regulă, pentru axa X se afişează Time, având semnificaţia de axă a timpului, ceea ce este util pentru semnalele care evoluează în raport cu timpul, dar se pot asocia şi alte semnificaţii.

Page 36: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

H. Luarea deciziilor într-un VI.

Simple Decision: Select Function

• If Temp Scale is TRUE, pass top input;

• If temp scale is FALSE, pass bottom input.

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

Select function can execute, a Case Structure may

be what is required.

Page 37: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Structura Case

• Structura de selectie Case - contine multiple

subdiagrame, numai una din acestea executându-se

depinzând de valoarea de intrare transmisă structurii.

Figure 2.25. Structura de selecție Case

Page 38: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Selecting a Case

• Figure 2.26 shows a VI that uses a Case structure to execute different code dependent on whether a user selects °C or °F for temperature units. The top block diagram shows the True case in the foreground. In the middle block diagram, the False case is selected. To select a case, enter the value in the case selector identifier or use the Labeling tool to edit the values. After you select another case, that case displays on the block diagram, as shown in the bottom block diagram of Figure 2.26.

Page 39: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Figure 2.26. Changing the Case View of a Case Structure

Page 40: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Boolean Case Structure

• Figure 2.27 shows a Boolean Case structure.

Figure 2.27. Boolean Case Structure

• If the Boolean control wired to the selector terminal is True, the VI adds the numeric values. Otherwise, the VI subtracts the numeric values.

Page 41: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Integer Case Structure

• Figure 2.28 shows an integer Case structure.

Figure 2.28. Integer Case Structure

• If the Integer wired to the selector terminal is 0 (add), the VI adds the numeric values. If the value is1 (subtract), the VI subtracts the numeric values. If Integer is any other value than 0 (add) or 1 (subtract), the VI adds the numeric values, because that is the default case.

Page 42: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

String Case Structure

• Figure 2.29 shows a string Case structure.

Figure 2.29. String Case Structure

• If String is add, the VI adds the numeric values. If String is subtract, the VI subtracts the numeric values.

Page 43: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Enumerated Case Structure

• Figure 2.30 shows a enumerated Case structure.

Figure 2.30. Enumerated Case Structure

• If Enum is add, the VI adds the numeric values. If Enum is subtract, theVI subtracts the numeric values.

Page 44: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Using Case Structures for Error Handling

• The following example shows a Case structure where an error cluster defines the cases.

Figure 2.31. No Error Case

Page 45: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Figure 2.32. Error Case

• When you wire an error cluster to the selector terminal of a Case structure, the case selector label displays two cases—Error and No Error—and the border of the Case structure changes color—red for Error and green for No Error. If an error occurs, the Case structure executes the Error subdiagram.

Page 46: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

I. Structura secvențială (Sequence)

• Această structură se foloseşte atunci când se doreşte execuţia programului într-o anumită ordine preferenţială, alta decât fluxul de date oferit de LabVIEW.

• O structură secvențială conţine una sau mai multe subdiagrame sau cadre (frame) care se execută în ordine secvenţială.

• Există două secvenţe structurale: structură secvenţială plată (Flat Sequence Structure) şi structură secvenţială stivuită (Stacked Sequence Structure).

Page 47: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Structura secvenţială plată

• Structura secvenţială plată se utilizează pentru a asigura execuţia unei subdiagrame înainte sau după o altă subdiagramă. Adăugarea unei noi structuri secvenţiale se obţine prin click - dreapta pe chenarul structurii şi apelarea facilităţii dorite din meniul contextual.

• Un clik – dreapta pe bara orizontală a chenarului oferă două facilităţi: introducerea unei structuri secvenţiale în faţă (Add Frame Before) sau introducerea unei structuri după (Add Frame After).

Page 48: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Un click – dreapta pe bara verticală a chenarului oferă doar una din cele două posibilităţi: pe bara stângă permite Add Frame Before iar pe bara dreaptă permite Add Frame After. Un click-dreapta pe o bară verticală a chenarului pentru o structură secvenţială intermediară oferă facilitatea Insert Frame.

• Structurile secvenţiale plate se execută de la stânga la dreapta când toate datele legate la cadru sunt disponibile. Se recomandă structura secvenţială plată pentru a evita secvenţele locale şi pentru o documentare mai bună a diagramei bloc.

Page 49: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• În primul cadru se realizează operaţia de multiplicare a valorii controlui introdus în panoul frontal iar rezultatul este transferat spre cadrul 2. În cadrul 2 şi 3 se execută alte două operaţii matematice care se bazează pe rezultatul anterior. Condiţionarea privind succesiunea operaţiilor şi o ordonare clară a diagramei s-a soluţionat astfel prin structura secvenţială plată.

Figure 2.33. Structură secvențială plată

Page 50: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

Structura secvenţială stivă

• Atunci cand este dispusa in

diagrama, o structura

Sequence stivă, contine o

singura fereastra, aceasta

fiind totodata si fereastra

curenta (vizibila). Deschizand

meniul propriu al structurii si

alegand una din optiunile

Add Frame After sau Add

Frame Before, se poate

adauga o fereastra dupa sau

inaintea celei curente.

Page 51: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Daca o structura Sequence stivă contine mai mult de o fereastra, atunci ferestrele primesc indici (numere de ordine) incepand cu 0, iar pe latura superioara a conturului structurii apare un selector prin intermediul caruia se poate trece de la o fereastra la alta.

• Atunci cand o structura Sequence stivă contine cel putin doua ferestre, ordinea acestora poate fi schimbata: se modifica indicele ferestrei curente, selectand optiunea Make This Frame, apoi noul indice.

• Atunci cand se doreste transferul unei valori intre doua ferestre ale unei structuri Sequence, prin selectarea optiunii Add Sequence Local se dispune pe conturul structurii o variabila locala a acesteia (sub forma unui patrat galben).

Page 52: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• 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.

Page 53: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• 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.

Page 54: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Î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

a) b)

c)

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

a – cadru 0; b – cadru 1; c – cadru 2

• In primul cadru se realizează conform

schemei logice impuse o operaţie de

multiplicare iar rezultatul este vizualizat prin

indicatorul Numeric 2 şi utilizat atât în

cadrul 2 cât şi în cadrul 3. Acest lucru este

posibil prin crearea secvenţei locale

apelând din meniul contextual pentru click

dreapta pe conturul vertical al cadrului.

• Secvenţa locală devine activă după

conectarea unui fir la aceasta. Starea

activă este semnalizată prin apariţia unei

săgeţi în interiorul semnului alocat

secvenţei. Pe acelaşi principiu rezultatul

operaţiei matematice din cadrul 2 este

posibil să fie utilizat în cadrul 3 (dar nu şi în

cadrul 1, fluxul datelor fiind doar spre

cadrele de ordin superior).

Page 55: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

J. Nodul Formulă (Formula Node)

• Nodul Formulă facilitează scrierea în interiorul său, a formulelor matematice de calcul. Se recomandă utilizarea Nodului Formulă pentru implementarea formulelor complexe.

• Avantajele Nodului Formulă sunt următoarele:

se uşurează scrierea, depanarea şi înțelegerea formulelor matematice;

se elimină erorile care pot să apară la transcrierea formulelor matematice complexe în limbajul G, care foloseşte noduri şi fire;

se reduce suprafața ocupată în diagrama bloc de formule matematice, implementate prin noduri şi fire.

Page 56: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice

• Nodul Formulă este disponibil în caseta cu funcții şi VI-uri, în grupul „Structuri” (Structures).

• Instrucțiunile de prelucrare din interiorul nodului se scriu într-o sintaxa asemănătoare limbajelor de programare, bazate pe text.

• Nodul Formulă defineşte operațiile prin una sau mai multe instrucțiuni de atribuire, fiecare terminându-se prin caracterul punct şi virgulă (;). Se precizează că o instrucțiune se poate întinde pe mai multe linii text; numărul maxim de caractere, care încap pe o linie, este dat de dimensiunea tipului de caractere folosit şi de dimensiunea orizontală a Nodul Formulă.

Page 57: E. Timing a VI - WordPress.com · 2019-05-06 · • Mediul de programare LabVIEW dispune, în meniul Graph al paletei de controale, de o serie de elemente pentru reprezentari grafice