Your SlideShare is downloading. ×
Cap.8
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Cap.8

77

Published on

Instrumentatie virtuala

Instrumentatie virtuala

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
77
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Every VI we have encountered so far has executed in an order dependent on the flow of data. There are many cases when a decision must be made in a program: if a happens, do b; else if c happens, do d. In text-based programs, this can be accomplished with if-else statements, case statements, switch statements, etc. In LabVIEW, there are also many different ways of making decisions. The simplest of these methods is the Select function.
  • Explain how this example differs from the previous example. One benefit of case structure: can have more than one output based on the choice made.
  • Explain how this example differs from the previous example. One benefit of case structure: can have more than one output based on the choice made.
  • Discuss the examples on the slide. Be sure to mention the difference between the numeric and Boolean Case structures. Also, remind the students that all cases must provide a value for all output tunnels. Demonstrate using the Text Ring from the Ring & Enum subpalette of the Controls palette. A text ring is simply a numeric control with text associated with each number. Demonstrate some of the features of Case structures: Directly typing into the Cases Setting ranges in the Case Reordering the Cases The Default Case Explain that not all cases must be wired, but it is good programming practice to do so. A default value can be used in unwired cases.
  • Sometimes it is preferable to program mathematical expressions with text-based function calls, rather than icons (which can take up a lot of room on the diagram). Formula Node: allows you to implement complicated equations using text-based instructions: Located in the Structures subpalette. Resizable box for entering algebraic formulas directly into block diagrams. To add variables, right-click and choose Add Input or Add Output. Name variables as they are used in formula. (Names are case sensitive.) Statements must be terminated with a semicolon. When using several formulas in a single formula node, every assigned variable (those appearing on the left hand side of each formula) must have an output terminal on the formula node. These output terminals do not need to be wired, however. Compare examples on the slide. Golden Rules of Formula Nodes: Add Inputs, give them names Add Outputs, give them names (and name ALL outputs, even those not used except as a “storage” variable) End EVERY line with a ; Remember to use Context Help for information about syntax
  • Do not immediately display this slide. Suggested questions for class participation: How can you make a decision in a VI? How do you use a case structure? When would it be best to use a formula node?
  • Transcript

    • 1. 8. Luarea deciziilor într-un VI. Structura secvențială (Sequence)TOPICSA. Decision making with the Select functionB. Case StructuresC. Formula NodesD. Structura Sequence
    • 2. A. 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.
    • 3. B. Structuri CaseStructura de selectie Case - contine multiple subdiagrame, numaiuna din acestea executandu-se depinzând de valoarea de intraretransmisă structurii.
    • 4. • Atunci cand este dispusa in diagrama, o structura Case contine doua ferestre (True si False), fiecare dintre acestea cu propriul flux de date.• Pe conturul structurii se afla dispus un terminal selector (de culoare verde, continand semnul intrebarii).• Structura Case va executa doar una din cele doua ferestre, in functie de valoarea booleana (True sau False) conectata la terminalul sau selector.• Daca la terminalul selector al unei structuri Case, in locul unei valori booleene, se conecteaza o valoare numerica (numar intreg sau natural), numele ferestrelor se vor modifica automat din True si False in 0 si 1.• Structura va executa fereastra al carei nume va coincide cu valoarea numerica ce ajunge la terminalul sau selector. In aceasta situatie, are sens ca structura Case sa contina mai mult de doua ferestre.• Deoarece structura Case nu va putea contine atatea ferestre cate valori numerice pot ajunge la terminalul sau selector, una dintre ferestre trebuie declarata drept fereastra implicita (Default). Fereastra implicita va fi executata atunci cand valorii ajunse la terminalul selector nu ii corespunde nici un nume de fereastra.• Un nume de fereastra poate contine si descrierea unei multimi de valori, de genul 2..5, 7..9, intelegand prin aceasta ca fereastra respectiva va fi executata daca la terminalul selector ajunge una din valorile 2, 3, 4, 5, 7, 8 sau 9.• O valoare nu poate exista in numele mai multor ferestre (ar exista o incertitudine privind fereastra ce trebuie executata).
    • 5. Boolean Case Structure Example:If Temp Scale is TRUE, execute True case;If temp scale is FALSE, execute False case.
    • 6. Structură Cases Booleană și Numerică
    • 7. String, Enum, and Error CasesString Case Enum Case Error Case
    • 8. Acest VI utilizează o structurăCase pentru calculul rădăciniipătrate a unui număr dat șiverificarea dacă numărul respectiveste negativ. Dacă este negativ,VI-ul va returna valoarea -99999.0în Indicatorul Digital și va afișa unmesaj de eroare, mesaj aflat într-oConstantă String.
    • 9. • Aplicație: Controlul temperaturii You will create a VI that will monitor a simulated current temperature along with the average temperature on a waveform chart. It will employ a while loop and shift register to do this. Added elements to the shift register will store temperature data from the past few iterations to calculate the average from. You will add an Overtemp control that utilizes a Case Structure to indicate when the current temperature is above a value entered in a Digital Control on the Front Panel. When the current temperature goes over the value, a Boolean Indicator will light and a beeping sound will occur on the computers speaker until the temperature goes below the upper temperature limit.
    • 10. C. Nodul Formulă Note semicolon• In the Structures subpalette• Implement complicated equations• Variables created at border• Variable names are case sensitive• Each statement must terminate with a semicolon (;)• Context Help Window shows available functions
    • 11. Exercițiu: Să se implementeze VI-ul din figura de mai jos
    • 12. D. Structura secvențială (Sequence)• 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ă 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 click- dreapta pe o bară verticală a chenarului pentru o structură secvenţială intermediară oferă facilitatea Insert Frame.
    • 13. • 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ă.
    • 14. •Atunci cand este dispusa in diagrama, o structuraSequence stivă, contine o singura fereastra,aceasta fiind totodata si fereastra curenta (vizibila).Deschizand meniul propriu al structurii si aleganduna din optiunile Add Frame After sau AddFrame Before, se poate adauga o fereastra dupasau inaintea celei curente.•Daca o structura Sequence stivă contine maimult de o fereastra, atunci ferestrele primesc indici(numere de ordine) incepand cu 0, iar pe laturasuperioara a conturului structurii apare un selectorprin intermediul caruia se poate trece de la ofereastra la alta.•Atunci cand o structura Sequence stivă continecel putin doua ferestre, ordinea acestora poate fischimbata: se modifica indicele ferestrei curente,selectand optiunea Make This Frame, apoi noulindice.
    • 15. • 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.
    • 16. • Î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 a) b) 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 c) cadrele de ordin superior).
    • 17. 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 2 31– 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.

    ×