I. Navigating LabVIEW

Documente similare
I. Navigating LabVIEW

III. Tablouri (Arrays) și Clustere

INTRODUCERE ÎN INSTRUMENTAŢIA VIRTUALĂ

Slide 1

Declararea variabilelor

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

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

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

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

Ch

EXCEL FĂRĂ SECRETE Grafice şi diagrame

Slide 1

Manual de utilizare Set volan și pedale MG7402

User guide

INTREBARI FRECVENTE SI MANUAL DE UTILIZARE hub.sendsms.ro

Microsoft Word - Excel_3.DOC

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

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

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

LABORATOR I

Slide 1

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

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

TEZA de ABILITARE Corelatii intre biomateriale, proteze valvulare cardiace si tehnici chirurgicale folosite in protezarea valvulara aortica Horatiu Mo

Packet Tracer - Configurarea ACL-urilor extinse - Scenariul 1 Topologie Tabela de Adresare R1 Echipament Interfață Adresă IP Masca de subreţea Default

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

STORY NAME: Young musician COPYRIGHT HOLDER: COPYRIGHT NOTICE: Telefilm Chisinau / OPEN Media Hub Ownership of content belongs to Telefilm Chisinau /

Programarea şi utilizarea calculatoarelor

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

Microsoft Word - Lab1a.doc

Microsoft Word - O problema cu bits.doc

Microsoft Word - CarteC.doc

PowerPoint Presentation

Microsoft Word - Laboratorul 3.doc

Proceduri stocate Syntax: CREATE PROCEDURE <Name> type1,...] AS -- secventa de comenzi SQL GO O procedura stocata se ruleaza cu EXEC: EXEC <N

tehnologii web

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

Inserarea culorilor in tabele

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

Biomedical Wi-Fi data transmissons

Capitole Speciale de Informatică Curs 1: Extragerea informaţiilor. Modelul boolean şi modelul boolean extins 27 septembrie 2018 Extragerea informaţiil

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

Laborator 7: PROIECTAREA BAZELOR DE DATE SUBPROGRAME in PL/SQL (partea I - proceduri) Un subprogram este un bloc PL/SQL cu nume (spre deosebire de blo

Sistemul de Gestiune a Bazelor de Date Access

aplicatii java

Microsoft Word - CarteC.doc

Informație și comunicare

Microsoft Word - L63 FPGA.doc

PowerPoint Presentation

Paradigme de programare

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

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

BC-2000 Control Acces

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

Microsoft Word - TIC5

Minicurs CCS C / Aplicatia1 1.Programul CCS C Compiler. Instalare.Creare proiect. Descarcati ultima versiune a programului de

Metode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1

Microsoft Word Sony_Ericsson_RO.doc

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

ALGORITHMICS

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

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

Logică și structuri discrete Logică propozițională Marius Minea marius/curs/lsd/ 3 noiembrie 2014

Microsoft PowerPoint - ImplementareLimbaj [Read-Only] [Compatibility Mode]

Manual-utilizare-PNI-IP31-IP32.cdr

Lucrarea nr. 2 Aplicaţii de tip client Mihai IVANOVICI 6 martie 2006 Scopul acestei lucrări este de a vă familiariza cu modulul Python socket şi cu mo

RZOLVARE EXERCITIU ZODII declare cursor distributie_zodie is select nume_zodie, count(*) distributie from zodiac z join utilizatori u on to_date(to_ch

Procesarea Imaginilor - Laborator 1: Introducere în utilizarea bibliotecii OpenCV 1 1. Introducere în utilizarea bibliotecii OpenCV 1.1. Introducere S

GT-100IP InternetPhone [VoIP] Ghidul Utilizatorului (V1.0)

PowerPoint Presentation

Windows 7

PHP (II)

2

Manual de utilizare a Sistemului Informațional al Institutului Național al Justiției (SI INJ) intranet.inj.md Ver.2 Manual de utilizare a Sistemului I

Aggregating Data

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

Microsoft Word - tcad_l6.doc

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

Ghid de asistenţă Aparat de comandă pentru aparatul foto CCB-WD1 Ghidul de asistenţă conţine instrucţiuni privind modul de utilizare a produsului sau

Introducere în limbajul JavaScript

Carrier Pidgeon Protocol

Analiză statică Analiza fluxului de date 23 octombrie 2014

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

Laborator 8: PROIECTAREA BAZELOR DE DATE SUBPROGRAME in PL/SQL (partea II - functii) Un subprogram este un bloc PL/SQL cu nume (spre deosebire de bloc

Diapositive 1

Lucrarea 10

Analiză de flux de date 29 octombrie 2012

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

Adresarea memoriei Modurile de adresare constituie un instrument principal pentru reprezentarea în memorie a imaginii datelor, aşa cum este ace

Slide 1

Transcriere:

III. Implementarea unui VI În acest capitol este prezentat modul de implementare a codurilor în LabVIEW. Astfel, acest capitol cuprinde: proiectarea interfeței utilizator (PF); alegerea între diferitele tipuri de date; utilizarea buclelor în LabVIEW (bucla While și bucla For) adăugarea unor întârzieri (timing) între iterațiile buclelor; luarea deciziilor într-un VI, utilizând funcția Select și structura Case; structura secvențială (Sequence) și nodul Formulă.

Topics A. Front Panel Design B. LabVIEW Data Types C. While Loops D. For Loops E. Timing a VI F. Iterative Data Transfer. Regiștrii de transfer (deplasare) G. Plotting Data H. Luarea deciziilor într-un VI. I. Structura secvențială (Sequence) J. Nodul Formulă (Formula Node)

A. Front Panel Design În faza de proiectare a unui VI, trebuiesc mai întâi identificate intrarile și ieșirile VI-ului respectiv. Această identificare duce practic la proiectarea ferestrei panoului frontal. Intrările VI-ului se numest Controale (C), iar ieșirile Indicatoare (I). Putem afișa rezultatele unei aplicații cu ajutorul diferitelor tipuri de indicatoare, cum ar fi grafice, diagrame, sau LED-uri. De asemenea, ieșirile pot fi salvate într-un fișier.

Alegerea Controalelor și Indicatoarelor Atunci când alegem C și I din PF, trebuie să ne asigurăm că acestea sunt adecvate pentru activitatea pe care dorim să o efectuăm. De exemplu, atunci când dorim să modificăm frecvența unui semnal vom alege un C de tip cadran (Dial), iar atunci când dorim să afișăm temperatura, vom alege un I de tip termometru.

Asigurați-vă de etichetarea clară a controalelor și indicatoarelor. Etichetarea ajută utilizatorii să identifice scopul fiecărui C și I. De asemenea, o etichetare clară a C și I din PF, ne va ajuta la realizarea DB, deoarece etichetele din PF vor apărea și la terminalele corespunzătoare în DB.

You can hide and view items on controls and indicators. For example, in Figure 2.1, you can see both the caption (legenda) and the label (eticheta). However, you only need to see the caption. To hide the label, right-click the control and select Visible Items»Label as shown in Figure 2.1. Figure 2.1. Hiding a Front Panel Label

B. LabVIEW Data Types Many different data types exist for data. You already learned about numeric, Boolean, and string data types in Lesson, Navigating LabVIEW. Other data types include the enumerated data type, dynamic data, and others. Even within numeric data types, there are different data types, such as whole numbers or fractional numbers. Terminals The block diagram terminals visually communicate to the user some information about the data type they represent.

For example, in Figure 2.2, Height (cm) is a doubleprecision, floating-point numeric. This is indicated by the color of the terminal, orange, and by the text shown on the terminal, DBL. Figure 2.2. Terminal Data Type Example

Tipuri de date utilizate în LabVIEW Numerice Intreg cu semn - Signed integers (8-16-32-64 biti) Intreg fara semn - Unsigned integers (8-16-32-64 biti) Virgula mobila - Floating point ( single, double, extended) Numar complex in virgula mobila - Complex floating point ( single, double, extended) Booleane String-uri Formă de undă - Waveform Cale - Path Enumerare - Enum Cluster Numeric Diverse tipuri Mixed data Matrice - Array 1D 2D

Toate tipurile de date enumerate mai sus pot fi utilizate si plasate pe Diagrama Bloc. Fiecare tip de data are o reprezentare grafica sub forma de Icoană sau de Terminal. Reprezentarea sub forma de Icoană este mai sugestiva însă are o dimensiune mai mare, pe când reprezentarea sub forma de Terminal este mai restrânsă si ocupa mai putin loc în cadrul aplicatiei schitate în Diagrama Bloc.

Tipuri de date numerice

Tipuri de date numerice (continuare)

Moduri de reprezentare a valorilor numerice Meniurile proprii ale elementelor de tip control sau de tip indicatoar numeric contin o optiune specifica, Representation, cu ajutorul careia se specifica modul in care valoarea numerica respectiva este stocata in memorie. Figure 2.3. Numeric Representation

In submeniul Representation, utilizatorul are la dispozitie 12 optiuni: pe prima linie: optiuni pentru numere reale pe a doua linie: optiuni pentru numere intregi pe a treia linie: optiuni pentru numere naturale pe a patra linie: optiuni pentru numere complexe Intre diversele optiuni de pe o linie, diferenta consta in numarul de octeti (bytes) alocati in memorie pentru stocarea valorii respective:

EXT (extended) = numar real cu precizie extinsa (16 octeti) DBL (double) = numar real cu precizie dubla (8 octeti) SGL (single) = numar real cu precizie simpla (4 octeti) I32 (long) = numar intreg pe 4 octeti I16 (word) = numar intreg pe 2 octeti I8 (byte) = numar intreg pe 1 octet U32 (unsigned long) = numar natural pe 4 octeti U16 (unsigned word) = numar natural pe 2 octeti U8 (unsigned byte) = numar natural pe 1 octet CXT (complex extended) = numar complex cu precizie extinsa (32 octeti) CDB (complex double) = numar complex cu precizie dubla (16 octeti) CSG (complex single) = numar complex cu precizie simpla (8 octeti)

În calculatoare sunt utilizate două tipuri de reprezentări binare ale numerelor reale: - reprezentarea în virgulă fixă şi - reprezentarea în virgulă flotantă (mobilă). Reprezentarea în virgulă fixă este o reprezentare care pune în evidenţă semnul, partea întreagă şi partea fracţionară a numărului. Dimensiunile locaţiei de memorie în care se reprezintă un număr în virgulă fixă este prefixată: 8, 16, 32 sau 64 de biţi. Principalul dezavantaj al reprezentării în virgulă fixă este faptul că, dacă un număr nu mai încape în spaţiul de biţi rezervat, se pierd cifrele cele mai semnificative! Reprezentarea în virgulă flotantă este astfel concepută, încât, la depăşire, se pierd cifrele cel mai puţin semnificative!

Numarul de octeti alocati pentru stocare se reflecta in intervalul de valori în care poate exista valoarea respectiva sau în precizia acesteia:

Atunci când se leagă date numerice de reprezentări diferite la intrările aceleiaşi funcţii, LabVIEW furnizează rezultatul de tipul cel mai lung. Dacă ambele intrări au acelaşi număr de biţi dar sunt de reprezentări diferite (de ex. U32 şi I32), LabVIEW furnizează rezultatul fără semn. In exemplul din figura următoare, adunarea dintre un număr real în reprezentare dublă precizie (8 octeţi) și un număr întreg cu semn pe 4 octeţi I32 dă un rezultat corespunzător numărului mai lung, deci real dublă precizie. Această operaţie se numeşte constrângere, iar operandul constrâns este marcat printr-un punct la intrarea în funcţie.

Apariția operaţiei de constrângere

Alte tipuri de date în LabVIEW

Functiile numerice ale mediului LabVIEW.

Functiile trigonometrice ale mediului LabVIEW.

Functiile logaritmice ale mediului LabVIEW.

Constante numerice aditionale ale mediului LabVIEW.

Variabile locale De multe ori avem nevoie sa utilizam in multe locuri aceeasi variabila. Pentru a nu supraâncărca diagrama bloc cu linii de legatura, se poate defini o variabila locală care va putea fi plasată în toate locurile în care avem nevoie de ea. Plasarea variabilei se face alegând din grupul: Functions->Programming- >Structures->Local-Variable. Dupa plasarea ei, cu click dreapta pe variabila->select Item, putem alege controlul atașat acestei variabile.

Sa presupunem ca dorim ca valoarea de intrare U i să o afișăm în trei indicatoare.

Meniuri proprii specifice elementelor Elementele de control booleene dispun in meniul propriu de optiunea suplimentara Mechanical Action, aceasta permițând stabilirea modului in care elementul se comporta la apasarea butonului mouse-ului de catre utilizator. booleene

>>> Switch When Pressed modifica valoarea logica a elementului atunci cand se apasa butonul mouse-ului, iar valoarea ramane modificata si dupa eliberarea butonului; >>> Switch When Released modifica valoarea logica a elementului atunci cand se elibereaza butonul mouseului (dupa ce in prealabil a fost apasat), iar valoarea ramane modificata si dupa eliberare; >>> Switch Until Released modifica valoarea logica a elementului atunci cand se apasa butonul mouse-ului, iar dupa eliberarea butonului valoarea elementului redevine cea dinaintea apasarii;

>>> Latch When Pressed modifica valoarea logica a elementului atunci cand se apasa butonul mouse-ului, dar aceasta modificare dureaza doar pana cand valoarea logica este transmisa in diagrama bloc pe fluxul de date. Imediat ce valoarea elementului a fost transmisa, acesta revine la valoarea dinaintea apasarii, chiar daca utilizatorul continua sa tina butonul mouseului apasat. >>> Latch When Released modifica valoarea logica a elementului atunci cand se elibereaza butonul mouse-ului (dupa ce in prealabil a fost apasat), dar această modificare dureaza doar pana cand valoarea logica este transmisa in diagrama pe fluxul de date. Dupa ce valoarea a fost transmisa, elementul revine la valoarea initiala. >>> Latch Until Released modifica valoarea logica a elementului atunci cand se apasa butonul mouse-ului, iar modificarea se pastreaza atat timp cat utilizatorul tine butonul apasat. Dupa ce utilizatorul elibereaza butonul, elementul revine la valoarea initiala doar in momentul in care se realizeaza o transmitere a valorii pe fluxul de date.

Aplicație Dispuneti pe panou un element boolean de control de tipul Vertical Toggle Switch si un element indicator de tipul Round LED. In diagrama bloc, conectati intre ele terminalele celor doua elemente. Pentru fiecare optiune Mechanical Option a elementului de control, efectuati o rulare continua (butonul Run Continuously) si observati modul in care se comporta comutatorul si modul in care valoarea sa logica este transmisa elementului Round LED.

Functiile logice ale mediului LabVIEW.

Functiile pentru realizarea comparatiilor ale mediului LabVIEW.

Strings A string is a sequence of displayable or nondisplayable ASCII characters. Strings provide a platform-independent format for information and data. Some of the more common applications of strings include the following: Creating simple text messages. Controlling instruments by sending text commands to the instrument and returning data values in the form of either ASCII or binary strings which you then convert to numeric values. Storing numeric data to disk. To store numeric data in an ASCII file, you must first convert numeric data to strings before writing the data to a disk file.

Atentionarea sau întrebarea utilizatorului prin intermediul unei cutii de dialog. Funcţiile pentru valorile alfanumerice sunt grupate în subpaleta String a paletei de Funcții. Mai frecvent utilizate sunt cele pentru transformarea caracterelor în majuscule (To Upper Case), pentru transformarea caracterelor în minuscule (To Lower Case), de calculare a lungimii unui şir de caractere (String Length), de compunere a unui şir din două şiruri distincte (Concatenate String), de identificare şi înlocuire a unui şir în cadrul altuia (Search and Replace String) etc. De asemenea, subpaleta String conţine un element String Constant utilizat pentru introducerea în diagramă a valorilor alfanumerice constante.

Enums An enum (enumerated control, constant or indicator) is a combination of data types. An enum represents a pair of values, a string and a numeric, where the enum can be one of a list of values. For example, if you created an enum type called Month, the possible value pairs for a Month variable are January-0, February-1, and so on through December-11. Figure 2.5 shows an example of these data pairs in the Properties dialog box for an enumerated control. Enums are useful because it is easier to manipulate numbers on the block diagram than strings. Figure 2.6 shows the Month enumerated control, the selection of a data pair in the enumerated control, and the corresponding block diagram terminal.

Figure 2.5. Properties for the Month Enumerated Control

Figure 2.6. Month Enumerated Control

Dynamic The dynamic data type stores the information generated or acquired by an Express VI. The dynamic data type appears as a dark blue terminal, shown at left. Most Express VIs accept and/or return the dynamic data type. You can wire the dynamic data type to any indicator or input that accepts numeric, waveform, or Boolean data. Wire the dynamic data type to an indicator that can best present the data. Indicators include graphs, charts,or numeric indicators. Most other VIs and functions in LabVIEW do not accept the dynamic data type. To use a built-in VI or function to analyze or process the data the dynamic data type includes, you must convert the dynamic data type.

Most other VIs and functions in LabVIEW do not accept the dynamic data type. To use a built-in VI or function to analyze or process the data the dynamic data type includes, you must convert the dynamic data type. Use the Convert from Dynamic Data Express VI to convert the dynamic data type to numeric, Boolean, waveform, and array data types for use with other VIs and functions.

When you place the Convert from Dynamic Data Express VI on the block diagram, the Configure Convert from Dynamic Data dialog box appears. The Configure Convert from Dynamic Data dialog box displays options that let you specify how you want to format the data that the Convert from Dynamic Data Express VI returns. When you wire a dynamic data type to an array indicator, LabVIEW automatically adds the Convert from Dynamic Data Express VI to the block diagram. Double-click the Convert from Dynamic Data Express VI to open the Configure Convert from Dynamic Data dialog box to control how the data appears in the array.

C. While Loops Similar comportarii unei bucle Do sau a unei bucle Repeat-Until (=repetă până când) în cadrul limbajelor de programare bazate pe text, o buclă While execută o subdiagramă atâta timp cât este îndeplinită o condiție. The following illustration shows a While Loop in LabVIEW, a flowchart equivalent of the While Loop functionality, and a pseudo code example of the functionality of the While Loop.

Figure 2.7. While Loop

The While Loop is located on the Structures palette. Select the While Loop from the palette then use the cursor to drag a selection rectangle around the section of the block diagram you want to repeat. When you release the mouse button, a While Loop boundary encloses the section you selected. Add block diagram objects to the While Loop by dragging and dropping them inside the While Loop.

1. Selectare buclă While 2. Înlănțuirea codului a fi repetat 3. Adăugarea de noduri suplimentare și apoi realizarea legăturilor Do Terminal iterație (Execută diagrama din interiorul buclei) While Condition is TRUE Terminal condiționare

A While loop repeats the sub diagram inside it until the conditional terminal, an input terminal, receives a particular Boolean value. The Boolean value depends on the continuation behavior of the While Loop. Rightclick the conditional terminal and select Stop if True or Continue if True from the shortcut menu. You also can wire an error cluster to the conditional terminal, rightclick the terminal, and select Stop on Error or Continue while Error from the shortcut menu. The While Loop always executes at least once. Below we see an empty While loop:

Selectarea condițiilor buclei Clic dreapta în terminalul condiționare pentru definirea opririi buclei Pe marginile buclei se pot crea regiștri de deplasare care transferă datele de la o iterație la următoarea Terminal iterație Terminal condiționare

Structure Tunnels Tunnels feed data into and out of structures. The tunnel is a block that appears on the border; the color of the block is related to the data type wired to the tunnel. When a tunnel passes data into a loop, the loop executes only after data arrive at the tunnel. Data pass out of a loop after the loop terminates.

Exemple de bucle While În diagrama bloc din figură, bucla While este executată până când ieșirea funcției de multiplicare este mai mare sau egală cu 5, iar controlul Enable este Adevărat (True). Funcția ȘI (AND) returnează la ieșire valoarea True doar dacă cele două intrări sunt True. Altfel ieșirea este False.

This example run until either the user clicks the stop button or number of iterations is greater than 10.

VI-ul din figura de mai jos generează numere aleatoare, până când numărul generat corespunde cu numărul specificat. Terminalul iteratie înregistrează numărul de numere aleatoare generate, până când apare numărul specificat.

Using While Loops for Error Handling You can wire an error cluster to the conditional terminal of a While Loop or a For Loop with a conditional terminal to stop the iteration of the loop. If you wire the error cluster to the conditional terminal, only the TRUE or FALSE value of the status parameter of the error cluster passes to the terminal. If an error occurs, the loop stops. In a For Loop with a conditional terminal, you also must wire a value to the count terminal or auto-index an input array to set a maximum number of iterations. The For Loop executes until an error occurs or until the number of set iterations completes.

If you wire an error cluster to the conditional terminal, the shortcut menu items Stop if True and Continue if True change to Stop on Error and Continue while Error. In Figure 2.8, the error cluster and a stop button are used together to determine when to stop the loop. This is the recommended method for stopping most loops. Figure 2.8. Stopping a While Loop

D. For Loops A For Loop, shown as follows, executes a subdiagram a set number of times. Figure 2.9 shows a For Loop in LabVIEW, a flowchart equivalent of the For Loop functionality, and a pseudo code example of the functionality of the For Loop. The For Loop is located on the Structures palette. You also can place a While Loop on the block diagram, rightclick the border of the While Loop, and select Replace with For Loop from the shortcut menu to change a While Loop to a For Loop. The count terminal is an input terminal whose value indicates how many times to repeat the subdiagram.

Figure 2.9. For Loop

Terminalul de numărare (terminal de intrare) Terminal iterație (terminal de ieșire)

Bucla For are două terminale: terminalul de numărare N (un terminal de intrare) şi terminalul de iterație i (un terminal de ieşire). Terminalul de numărare arată de câte ori se se va executa bucla. Terminalul de iteraţie arată iterația curentă. Pe marginile buclei For, la fel ca și pe marginile buclei While se pot crea regiștri de deplasare care transferă datele de la o iterație la următoarea.

The iteration count for the For Loop always starts at zero. The For Loop differs from the While Loop in that the For Loop executes a set number of times. A While Loop stops executing the subdiagram only if the value at the conditional terminal exists. The For Loop in Figure 2.10 generates a random number every second for 100 seconds and displays the random numbers in a numeric indicator. Figure 2.10. For Loop Example

Adding a Conditional Terminal to a For Loop If necessary, you can add a conditional terminal to configure a For Loop to stop when a Boolean condition or an error occurs. A For Loop with a conditional terminal executes until the condition occurs or until all iterations are complete, whichever happens first. For Loops you configure for a conditional exit have a red glyph in the count terminal as well as a conditional terminal in the lower right corner. After you configure the For Loop to exit conditionally, the loop appears similar to Figure 2.11. The following For Loop generates a random number every second until 100 seconds has passed or the user clicks the stop button.

To add a conditional terminal to a For Loop, right-click on the For Loop border and select Conditional Terminal from the shortcut menu (Fig.2.12). Then wire the conditional terminal and the count terminal. Figure 2.11. For Loop Configured for a Conditional Exit

Figure 2.12. Adding a Conditional Terminal to a For Loop

Numeric Conversion LabVIEW can represent numeric data types as signed or unsigned integers, floating-point numeric values, or complex numeric values, as discussed in the LabVIEW Data Types section of this lesson. Normally, when you wire different representation types to the inputs of a function, the function returns an output in the larger or wider format. If you use a signed integer with an unsigned integer, it will coerce to the unsigned integer. If you use an unsigned integer with a floating point, it will coerce to the floating point. If you use a floating point number with a complex number, it will coerce to the complex number.

If you use two numbers of the same type with different bit widths, LabVIEW will coerce to the larger of the two bit widths. For example, if you wire a DBL and an I32 to a Multiply function, the result is a DBL, as shown in Figure 2.13. LabVIEW coerces the 32-bit signed integer because it uses fewer bits than the doubleprecision, floating-point numeric value. The lower input of the Multiply function shows a red dot, called a coercion dot, that indicates LabVIEW coerced the data.

Figure 2.13. Numeric Conversion Example However, the For Loop count terminal works in the opposite manner. If you wire a double-precision, floatingpoint numeric value to the 32-bit count terminal, LabVIEW coerces the larger numeric value to a 32-bit signed integer. Although the conversion is contrary to normal conversion standards, it is necessary, because a For Loop can only execute an integer number of times.

Figure 2.14. Coercion on a For Loop For better performance, avoid coercion by using matching data types or programmatically converting to matching data types, as shown in Figure 2.15.

Figure 2.15. Avoiding Coercion By Using Matching Data Types