I. Navigating LabVIEW

Documente similare
I. Navigating LabVIEW

III. Tablouri (Arrays) și Clustere

EXCEL FĂRĂ SECRETE Grafice şi diagrame

Slide 1

Declararea variabilelor

A.E.F. - suport laborator nr.3 sem.ii Aplicațe privind utilizarea rețelelor 1D În acest laborator sunt atinse următoarele aspecte: realizarea schițelo

Microsoft Word - Excel_3.DOC

A.E.F. - suport laborator nr.10 sem.ii Analiza stării de contact între elemente 3D În acest laborator sunt atinse următoarele aspecte: analiza contact

A.E.F. - suport laborator nr.5 sem.ii Analiza suprafețelor prin utilizarea elementelor 2D În acest laborator sunt atinse următoarele aspecte: realizar

Microsoft Word - Laboratorul 3.doc

Laborator 1 suport teoretic Mediul de dezvoltare Eclipse GLOSAR - Aplicaţie: program obţinut în urma aplicării operației BUILD asupra unui proiect (ve

Paradigme de programare

Manual de utilizare Room Booking System

Biomedical Wi-Fi data transmissons

Diapositive 1

A.E.F. - suport laborator nr.8 sem.ii Analiza structurală la flambaj În acest laborator sunt atinse următoarele aspecte: modalitatea de analiză la fla

Ch

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

tehnologii web

GEOMORFOLOGIE LP

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 1. Google Drive, Google Calendar, WeTr

A.E.F. - suport laborator nr.7 sem.ii Utilizarea rețelelor de tip 1D & 2D În acest laborator sunt atinse următoarele aspecte: conectarea unui element

Matematici aplicate științelor biologie Lab06 MV

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

Microsoft Word - tcad_l6.doc

Web Social FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 2. Dezvoltarea blogurilor prin intermediul WordPress.com PREZE

Înregistrator de temperatură şi umiditate AX-DT100 Instrucţiuni de utilizare

INTRODUCERE ÎN INSTRUMENTAŢIA VIRTUALĂ

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

Guns N' Roses Video Slots Regulile jocului Guns N' Roses Video Slots este un slot video cu 5 role, 3 rânduri și 20 de linii care conține substituții W

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 4. Dezvoltarea site-urilor si blog-uri

Microsoft Word - L63 FPGA.doc

Analiză statică Analiza fluxului de date 23 octombrie 2014

Generarea semnalelor standard 1 Scopul lucrării Familiarizarea cu modul de generare şi reprezentare în mediul Matlab a semnalelor de test, considerate

Lab6LCD

SUBPROGRAME

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O

Addendum Syllabus 6 Microsoft Access 2016 REF Syllabus 6.0 Cunoașterea domeniilor în care se utilizează bazele de date Datorită potenţialului ma

Slide 1

Matematici aplicate științelor biologie Lab05 MV

Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011

PowerPoint Presentation

9. Stringuri și Fișiere I/O (Intrare/Ieșire)

User guide

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

Ghid de referinţă rapidă pentru Seria ZT400™

Informatică aplicată TEST GRILA TEST GRILĂ - REZOLVAT 1.Structura de principiu a unui sistem de calcul contine urmatoarele componente principale: A. u

A

Lucrul în mediul Excel 1.1. Componentele ferestrei Excel CAPITOLUL 1 LUCRUL ÎN MEDIUL EXCEL Fereastra Excel figura are numeroase elemente comune

fm

E_d_Informatica_sp_SN_2014_bar_10_LRO

Microsoft Word _POO_Lab_1_Modificari_v01.htm

Addendum Syllabus 6 Microsoft Excel 2010 REF Syllabus 6.0 Crearea unui nou registru de calcul pe baza unor șabloane disponibile local sau online

Noțiuni matematice de bază

Analiză de flux de date 29 octombrie 2012

Platforma 5. 1 Introducere in MSSQL Introducere Pe parcursul ultimilor ani, se poate observa o cuplare a limbajelor de programare majore cu tipuri de

LABORATOR I

GHERCĂ MAGDA CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: GHERCĂ G

Informație și comunicare

Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011

Manual de utilizare Aplicatie Proiector I. Pornire/Oprire proiectie Pentru a porni/opri proiectia aveti 3 posibilitati: 1) Pentru pornirea proiectiei

INTREBARI FRECVENTE SI MANUAL DE UTILIZARE hub.sendsms.ro

LABORATOR 1. Stocarea si partajarea fisierelor online cu ajutorul Dropbox, WeTransfer.com PREZENTAREA LUCRĂRII DE LABORATOR Lucrarea de laborator îşi

Manual ArenaXT Web

Matematici aplicate științelor biologie Lab09 MV

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

1

Microsoft Word - TIC5

Windows 7

GHID PENTRU RESETAREA PAROLEI Informații Generale Din dorința de a facilita procesul de autentificare, chiar dacă nu mai cunoașteti datele necesare, a

Agenţia de Dezvoltare Regională (ADR) Nord-Vest vă invită la lansările regionale a trei domenii majore de intervenţie aferente Programului Operaţional

Raportarea serviciilor de dializă la nivel CNAS

Matrici și vectori în VBA În VBA, o matrice este un grup de variabile de același tip. De ce ar trebui să utilizați o matrice? Presupunem că ați vrut s

Slide 1

Laborator 2-Reprezentari grafice in Matlab Daniel N.Pop Universitatea Lucian Blaga Sibiu Facultatea de Inginerie-Departament Calculatoare si inginerie

Sisteme noi de analiza experimentala a dinamicii masinilor si utilajelor. Instrumentatie virtuala

Unelte ce se regasesc in Viewer (CD, Stick) Uneltele de baza Uneltele de baza includ cele mai comune unelte folosite in modulele OnDemand 3D App. Unel

CABINET MINISTRU

Crearea ghidului de studiu Syllabus

Lecții de pregă,re la informa,că Admitere 2019 Tema: Discutarea problemelor date la ul,mele sesiuni de admitere Bogdan Alexe

Laborator 10 - Paradigme de Programare Corutine - suport nativ pentru paralelism în Kotlin Înainte de a trece la realizarea unei aplicații utilizând c

FILTRE DE REALIZARE CU CIRCUITE DE INTEGRARE

Addendum Syllabus 6 Microsoft Word 2016 REF Syllabus 6.0 Crearea unui document nou pe baza unor șabloane disponibile local sau online Microsoft

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

Microsoft Word - O problema cu bits.doc

Microsoft Word - 2 Filtre neliniare.doc

Introducere

Modul Modbus ASCII SISTEME DE COMUNICATIE CURS 5 - Constantinescu Catalin Atunci cand se foloseste modul MODBUS ASCII fiecare octet din mesaj

Microsoft Word - MANUAL_APP_ROMPOS_V7.docx

Aggregating Data

Microsoft Word - Controller pt 32cp0123,140,160-manual_ro .docx

Manual de utilizare D800W D800W Citiţi în întregime manualul înainte de a utiliza produsul şi păstraţi-l pentru consultare ulterioară. Versiunea A ROM

Ggestiunea FNUASS

Lucrarea 10

DISPOZITIVE DE INTRARE

Manual de utilizare Set volan și pedale MG7402

carteInvataturaEd_2.0_lectia5.pdf

Metode avansate de gestiune a documentelor și a sistemelor de calcul - LABORATOR 1 -

Transcriere:

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.

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.

Elapsed Time 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. 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.

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.

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.

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

Terminalul stang al unui registru de transfer poate fi dimensionat, capatand astfel mai multe componente. Intr-o astfel de situatie, valoarea transferata din iteratia anterioara se afla in componenta superioara. De sus in jos, fiecare componenta contine cate o valoare provenita dintr-o iteratie mai indepartata. Dupa executarea ultimei iteratii a buclei, din terminalul drept al registrului se poate extrage ultima valoare transferata acestuia. O structura repetitiva poate contine mai multi registri de transfer, fiecare cu una sau mai multe componente ale terminalului stang si fiecare transferand intre iteratii valori de diverse tipuri.

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

Initialized Shift Registers Output = 5 Output = 5 Run Once VI stops execution Run Again

Uninitialized Shift Registers Output = 4 Output = 8 Run Once VI stops execution Run Again

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.

Figure 2.16. Paleta Controls și subpaleta Graph

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

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.

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.

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

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

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.

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.

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

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 x 0 ş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.

Figure 2.17. Definirea valorilor x 0 şi Δx

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

În situaţia în care se trasează mai multe grafice şi se doreşte definirea abscisei x 0 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.

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.

Figure 2.24. The XY Graph Indicator

Î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

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 x i = i Δx şi se calculează ordonata y=sin(x i ). La ieşirea din bucla For, şirurile de valori x i şi y i sunt grupate într-un cluster (cu funcţia Bundle), iar acesta este trimis la terminalul elementului XY Graph.

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.

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

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

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.

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.

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.

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

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.

Figure 2.26. Changing the Case View of a Case Structure

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.

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.

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.

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.

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

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.

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

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

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 clickdreapta pe o bară verticală a chenarului pentru o structură secvenţială intermediară oferă facilitatea Insert Frame. Structurile secvenţiale plate se execută de la stânga la dreapta când toate datele legate la cadru sunt disponibile. Se recomandă structura secvenţială plată pentru a evita secvenţele locale şi pentru o documentare mai bună a diagramei bloc.

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

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.

Daca o structura Sequence stivă contine mai mult de o fereastra, atunci ferestrele primesc indici (numere de ordine) incepand cu 0, iar pe latura superioara a conturului structurii apare un selector prin intermediul caruia se poate trece de la o fereastra la alta. Atunci cand o structura Sequence stivă contine cel putin doua ferestre, ordinea acestora poate fi schimbata: se modifica indicele ferestrei curente, selectand optiunea Make This Frame, apoi noul indice. Atunci cand se doreste transferul unei valori intre doua ferestre ale unei structuri Sequence, prin selectarea optiunii Add Sequence Local se dispune pe conturul structurii o variabila locala a acesteia (sub forma unui patrat galben).

Daca, in una din ferestrele structurii, se conecteaza o valoare la variabila locala, fereastra respectiva devine fereastra sursa pentru acea variabila. In acea fereastra, simbolul variabilei locale contine o fereastra indreptata spre exteriorul structurii. In ferestrele anterioare ferestrei sursa, simbolul variabilei locale devine hasurat, semn ca valoarea variabilei locale nu este accesibila in acele ferestre.

In ferestrele de dupa fereastra sursa, simbolul variabilei locale va contine o sageata indreptata spre interiorul structurii. In aceste ferestre, valoarea transferata prin intermediul variabilei locale poate fi utilizata in fluxul de date. O structura Sequence poate dispune de mai multe variabile locale. Intr-o structura Sequence pot fi utilizate valori provenite din fluxul de date exterior. O valoare introdusa din exterior intr-o structura Sequence va putea fi utilizata in oricare dintre ferestrele structurii. Daca, intr-o anumita fereastra, se face o legatura din structura Sequence in exteriorul acesteia, la iesirea respectiva (patratul de pe contur) nu va mai putea fi legata o alta valoare din alta fereastra (ar exista o incertitudine privind valoarea care iese din structura). Indiferent de indicele ferestrei in care s-a facut o legatura spre exterior, valoarea va parasi iesirea de pe conturul structurii Sequence doar dupa executarea ultimei ferestre.

În figura alăturată se prezintă o structură secvenţială stivă formată din 3 cadre (0, 1, 2) cadrul activ în figura prezentată fiind cadrul 1. În fiecare cadru se pot introduce nodurile existente sau edita altele noi. Diagrama care trebuie execută prima se introduce în cadrul 0, diagrama care trebuie executată a doua în cadrul 1 s.a.m.d. O exemplificare a utilizării structurii secvenţiale stivă este prezentată în figura de mai jos 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).

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.

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