320 likes | 520 Views
Previously…. We created a simulated temperature reader which alerts if too hot or too cold… Download the solved practice to keep in sync : Thermostat.vi. 28.09.2012. D. While Loops. Repeat (code); Until Condition met; End;.
E N D
Previously… • Wecreated a simulated temperature readerwhichalertsiftoo hot or toocold… • Download the solvedpracticetokeep in sync: • Thermostat.vi 28.09.2012
D. While Loops Repeat (code); Until Condition met; End; LabVIEW While Loop Flowchart Pseudo Code 28.09.2012
D. While Loops • Iteration terminal: returns number of times loop has executed; zero indexed • Conditional terminal: defines when the loop stops Iteration Terminal Conditional Terminal 28.09.2012
Practice • Add a STOP buttonto the previouspractice, then include everything in a whileloop in orderto stop the programwhen the user hit STOP. • Add a CHART and display the currentiterationnumber on it. • Please note: fromnow on the RUN CONTINOUSLY buttonwon’t beused, use the RUN buttoninstead. • AVOID HITTING THE ABORT BUTTON AT ALL COSTS!! 28.09.2012
D. While Loops – Tunnels • Tunnels transfer data into and out of structures • The tunnel adopts the color of the data type wired to the tunnel • Data pass out of a loop after the loop terminates • When a tunnel passes data into a loop, the loop executes only after data arrive at the tunnel 28.09.2012
Practice • Please open again the previous vi. • Usingan input tunnel display the time the vi hasbeenactive (in seconds) and stop itwhensuchtimeis MORE THAN 20s or if the userhits the STOP button. • Thinkaboutthis: what are the differencesbetween a simplewire and a tunnel? Can a wire HOLD data? Can a tunnel? 28.09.2012
F. Timing a VI Why do you need timing in a VI? • Control the frequency at which a loop executes • Provide the processor with time to complete other tasks, such as processing the user interface
F. Timing a VI – Wait Functions • A wait function inside a loop allows the VI to sleep for a set amount of time • Allows the processor to address other tasks during the wait time • Uses the operating system millisecond clock
F. Timing a VI – Elapsed Time Express VI • Determines how much time elapses after some point in your VI • Keep track of time while the VI continues to execute • Does not provide the processor with time to complete other tasks
Practice • Open task manager and run the previous vi. • Addto the previouspractice the properwaitfunction in ordertoforce the looptimeto 200ms • Open task manager and run the vi again. • Addto the previouspractice the properfunction in orderto display a stringversionoftimeelapsed
E. For Loops N=100; i=0; Until i=N: Repeat (code;i=i+1); End; LabVIEW For Loop Flowchart Pseudo Code 28.09.2012
E. For Loops • Create a For Loop the same way you create a While Loop • If you need to replace an existing While Loop with a For Loop, right-click the border of the While Loop, and select Replace with For Loop from the shortcut menu • The value in the count terminal (an input terminal) indicates how many times to repeat the subdiagram 28.09.2012
E. For Loops – Conditional Terminal You can add a conditional terminal to configure a For Loop to stop when a Boolean condition or an error occurs
E. For Loops – Numeric Conversion • The number of iterations a For Loop executes must be specified in nonnegative integers • If you wire a double-precision, floating-point numeric value to the count terminal, LabVIEW converts the larger numeric value to a 32-bit signed integer
E. For Loops – Numeric Conversion • Normally, when you wire different representation types to the inputs of a function, the function returns an output in the larger or wider format • LabVIEW chooses the representation that uses more bits • However, the For Loopcount terminal alwayscoerces to a 32-bit signedinteger Coercion Dot
E. For Loops – Numeric Conversion • Avoid coercion for better performance • Choose matching data type • Programmatically convert to the matching data type
Practice • Reproduce the following block diagram • Whatwillbe the resultdisplayed in A? in B? in C? When?Whatwillbe the contentof D? 28.09.2012
E. For Loops – Conditional Terminal For Loops configured for a conditional exit have: • Red glyph next to the count terminal • Conditional terminal in the lower right corner
E. For Loop/While Loop Comparison For Loop • Executes a set number of times unless a conditional terminal is added • Can execute zero times • Tunnels automatically output an array of data While Loop • Stops executing only if the value at the conditional terminal meets the condition • Must execute at least once • Tunnels automatically output the last value 28.10.2012
A. Arrays • An array consists of elements and dimensions • Elements: data that make up the array • Dimension: the length, height, or depth of an array • An array can have one or more dimensions and as many as (231)–1 elements per dimension, memory permitting • Consider using arrays when you work with a collection of similar data and when you perform repetitive computations 28.09.2012
A. Arrays • The first element shown in the array (3.00) is at index 1 and the second element (1.00) is at index 2 • The element at index 0 is not shown in this image, because element 1 is selected in the index display • The element selected in the index display always refers to the element shown in the upper left corner of the element display 28.09.2012
A. Arrays – Creating • Place an array shell on the front panel • Drag a data object or element into the array shell 28.09.2012
A. Arrays – 2D Array • Stores elements in a grid • Requires a column index and a row index to locate an element, both of which are zero-based • To create a multidimensional array on the front panel, right-click the index display and select Add Dimension from the shortcut menu • You also can resize the index display until you have as many dimensions as you want
A. Arrays – Initializing • You can initialize an array, or leave it uninitialized • For initialized arrays, you define the number of elements in each dimension, and the contents of each element • Uninitialized arrays have dimension but no elements
A. Arrays – Creating Constants • To create an array constant: • Select an array constant on the Functions palette • Place the array shell on the block diagram • Place a constant in the array shell • You can use an array constant to store constant data or as a basis for comparison with another array • Array constants also are useful for passing data into a subVI
A. Arrays – Auto-indexing • If you wire an array to or from a For Loop or While Loop, you can link each iteration of the loop to an element in that array by enabling auto-indexing on tunnel • The tunnel changes from a solid square to the image shown above to indicate auto-indexing 28.09.2012
A. Arrays – Auto-indexing Input For Loop executes a number of times equal to the number of elements in the array 28.09.2012
A. Arrays – Auto-indexing Input • If the iteration count terminal is wired and arrays of different sizes are wired to auto-indexed tunnels, the actual number of iterations becomes the smallest of the choices. 28.09.2012
Practice • Create a newVIhaving the following block diagram • Whichvalueswillbedisplayedby A,B and C? 28.09.2012
A. Arrays – Auto-indexing Output • When you auto-index an array output tunnel, the output array receives a new element from every iteration of the loop • Auto-indexed output arrays are always equal in size to the number of iterations 28.09.2012
A. Arrays – Creating 2D Arrays You can use two For Loops, one inside the other, to create a 2D array
Practice@HOME • Open the thermostatpracticeVI, • Insteadofgenerating a single temperature value per cycle, create a set of 100 samples, put them in anarray. • Display all the 100 samples on both the CHART and the GRAPH, whilecontrolling the booleanindicatorsonly on the AVERAGE of the array • Pleasetrytokeepyou block diagramastidyaspossible 28.09.2012