Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Cap.8
1. 8. Luarea deciziilor într-un VI.
Structura secvențială (Sequence)
TOPICS
A. Decision making with the Select function
B. Case Structures
C. Formula Nodes
D. 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 Case
Structura de selectie Case - contine multiple subdiagrame, numai
una din acestea executandu-se depinzând de valoarea de intrare
transmisă 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.
8. Acest VI utilizează o structură
Case pentru calculul rădăcinii
pătrate a unui număr dat și
verificarea dacă numărul respectiv
este negativ. Dacă este negativ,
VI-ul va returna valoarea -99999.0
în Indicatorul Digital și va afișa un
mesaj de eroare, mesaj aflat într-o
Constantă 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 computer's speaker
until the temperature goes below the upper
temperature limit.
10.
11. 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
13. 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.
14. • 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ă.
15. •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.
16. • 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.
17. • Î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).
18. 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.
Editor's Notes
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?