CLAD Sample Exam-2

Download as pdf or txt
Download as pdf or txt
You are on page 1of 22
At a glance
Powered by AI
The document content provides a sample exam with multiple choice questions to test knowledge of LabVIEW.

The purpose seems to be to provide a sample exam to help prepare for a certification exam on LabVIEW.

The sample exam includes multiple choice questions related to topics like loops, data types, charts, and design patterns in LabVIEW.

CLAD Sample Exam

Sample Exam Items:

1. Which of the following statements is TRUE regarding the execution of the following code?

a. The loop will iterate 51 times.


b. The loop will iterate 50 times.
c. The loop will iterate 49 times.
d. A For Loop that has a 50 wired to the count terminal will perform the same operation.

2. Which of the following will cause an event to be captured by the LabVIEW Event Structure?

a. Changing a value on a Front Panel control via a mouse click


b. Update of a Front Panel control using a property node
c. Programmatic update of a Front Panel control via a control reference
d. Using VI Server to update a Front Panel control

3. What value does the Result indicator display after the code snippet executes?

a. The time elapsed (in milliseconds) for SubVI to complete execution


b. Zero
c. Number of seconds elapsed since January 1, 1970
d. The time elapsed (in milliseconds) during the execution of the sequence structure

Page 3 of 24
CLAD Sample Exam

4. You have a control on the front panel of a VI and you need to modify one of its properties at
run time. Which of the following is the best approach you would take?

a. Create an implicit property node and select the property to modify


b. Create a control reference, pass the reference to a property node and select the
property to modify
c. Create a linked shared variable and select the property to modify the property
d. Create a local variable and select the property to modify

5. The most efficient method for creating an array is:

a. Placing a build array function in a While Loop


b. Initializing an array and then replacing elements in a While Loop
c. Using a For Loop with Auto-indexing
d. Using a While Loop with Auto-Indexing

6. Which timing function (VI) is the best choice for timing control logic in applications that run
for extended periods of time?

a.

b.

c.

d.

Page 4 of 24
CLAD Sample Exam

7. For the VI shown in the following block diagram, automatic error handling is enabled. If the
file C:\data.txt does not exist, will an error dialog box pop up?

a. Yes, each time the error from the Open/Create/Replace File function is returned
b. Yes, each time a loop iteration completes
c. Yes, but only once, not on each iteration of the loop
d. No

8. If an input name on the Show Context Help window is in bold for a SubVI, which of the
following conditions are true? (Multiple answers may apply)

a. Input values must be scalar.


b. An input is recommended, but not required.
c. An input is required.
d. A broken run arrow will result unless the input is wired.

9. In the figure below, the output of Array Size is

a. 1D Array of {2, 3}
b. 1D Array of {3, 2}
c. 2
d. None of the above

Page 5 of 24
CLAD Sample Exam

10. Which code snippet writes the smallest amount of data to disk?

a.

b.

c.

Page 6 of 24
CLAD Sample Exam

d.

11. Which setting assigns specific keys or key combinations to a front panel control?

a. Key Focus
b. Key Navigation
c. Radix
d. Distribute Objects

12. What is the result in new string after the following code has executed?

a. Hello to you!
b. Hello Wto you!
c. Hello to you!!
d. Helloto you!

13. What functionality do Control References provide?

a. Ability to add controls and indicators to a VI programmatically


b. Access to the properties of Front Panel objects in SubVIs
c. Control of multiple DAQ inputs through alias names
d. Ability to wire from controls to functions and SubVIs

Page 7 of 24
CLAD Sample Exam

14. What value does the Numeric indicator display after this code executes?

a. 0
b. 4
c. 8
d. The While Loop iterates indefinitely

15. You develop a SubVI that only outputs a value and need to use this SubVI in a (calling) VI.
Which of the following is the best way to enforce dataflow to control the execution of the
SubVI?

a. Use the SubVI in a Sequence structure


b. Modify the SubVI to have dummy inputs that can be used from the calling VI
c. Modify the SubVI to have Error clusters that can be used from the calling VI
d. Modify the SubVI to have a global variable and use it from the calling VI

Page 8 of 24
CLAD Sample Exam

16. The file C:\data.txt does not exist, but the VI does not report an error. Which code snippet
reports an error and stops?

a.

b.

c.

Page 9 of 24
CLAD Sample Exam

d.

17. Can a wire be used to pass data between loops that are intended to run in parallel?

a. Yes
b. No

18. You need to programmatically update the value in a numeric control. Which is the most
appropriate strategy?

a. Use a Functional Global Variable


b. Use a Local variable
c. Set the desired value as the default value
d. Use a Data Value Reference

19. Which of the following illustrates an advantage of a global variable over a local variable?

a. A global variable can pass data between two independent VIs running simultaneously
b. Only the global variable can pass array data, local variables cannot
c. Global variables follow the dataflow model, and therefore cannot cause race conditions
d. Global variables do not require owned labels to operate

Page 10 of 24
CLAD Sample Exam

20. Which plot will change color first?

a. Plot 1 because properties are executed top-down


b. Plot 0 because properties are implemented in numeric order starting at zero
c. Both plots will be updated simultaneously due to the multithreading of properties
d. It cannot be determined because LabVIEW performs operations in dataflow format

21. Which of the following will allow you to have multiple plots on a Waveform Graph?

a. Bundle two 1D arrays of X and Y data together for each plot. Then build an array of
these clusters and wire it to the Waveform Graph indicator.
b. Build an 2D array of data with each plot in a separate row (or column) in the array, then
wire the array to the Waveform Graph indicator.
c. Bundle the elements of each waveform into a cluster and build an array of these
clusters, then wire the array to the Waveform Graph indicator.
d. Both B. and C.

22. Which statement best describes a Notify event, such as the value change of a Boolean
control?

a. Indication that an event occurred and LabVIEW did NOT process the event
b. Indication that an event occurred and was discarded by the user
c. Indication that an event occurred and LabVIEW processed the event
d. Indication that an event did NOT occur but specified Event timeout did occur

Page 11 of 24
CLAD Sample Exam

23. You customize a control, select Control from the Type Def. Status pull-down menu, and save
the control as a .ctl file. You then use an instance of the custom control on your front panel
window. If you open the .ctl file and modify the control, does the control on the front panel
window change?

a. Yes
b. No

24. How long does this Dequeue Element function wait to receive data?

a. 1 millisecond (default since unwired)


b. 1 second (default since unwired)
c. Indefinitely
d. It does not wait, it returns immediately

25. What value does the Result F2 indicator display after the VI containing this Stacked
Sequence structure executes?

a. 0
b. 25
c. 40
d. 65

Page 12 of 24
CLAD Sample Exam

26. Which of the following accurately describes the output that results from execution of the
following loop?

a. The last three values from the Random Number function will be displayed.
b. A running average of all measurements will be displayed.
c. An average of the last four measurements will be displayed.
d. None of the above

27. In what instance would you use the Probe tool rather than Highlight Execution?

a. To see the flow of data


b. To see the value of a wire in real-time
c. To look into a SubVI, as the process is running
d. To slowdown the VI and show data values in wires

Page 13 of 24
CLAD Sample Exam

28. This graphic displays all the cases of a single case statement. What value does the Result
indicator display after the VI executes?

a. 5
b. 7
c. 12
d. 36

29. The following breakpoint does which of the following:

a. Causes the VI to abort


b. Causes the VI to pause
c. Causes the VI to single step over the addition
d. Causes the VI to single step over the indicator

Page 14 of 24
CLAD Sample Exam

30. What value is displayed in Result when the code executes?

a. A 1-D Array of {-25, 25, 50}


b. A 1-D Array of {-25, 25}
c. A 2-D Array of {{-25, -50, -50} , {50, 25, 25}}
d. A 1-D Array of {75, -50, 25}

31. Which mechanical action of a Boolean would you use to mimic a button on a Windows
dialog?

a. Switch Until Released


b. Switch When Released
c. Latch Until Released
d. Latch When Released

32. Which is not an important part of creating a Functional Global Variable?

a. Using Shift Registers to store information


b. Changing the VI’s execution settings to Reentrant
c. Setting the VI to inline into calling VIs
d. Setting the While Loop to stop after one iteration

33. Which chart update mode should be used to compare old and new data separated by a
vertical line? This chart will display similar to an electro-cardiogram (EKG).

a. Strip Chart
b. Scope Chart
c. Sweep Chart
d. Step Chart

Page 15 of 24
CLAD Sample Exam

34. The following block diagram represents which common type of VI architecture?

a. Multiple Case Structure VI


b. General VI
c. State Machine VI
d. Parallel Loop VI

35. The function of a Cluster is to:

a. Grouping of mixed data types into logical structures.


b. Present data on the Front Panel using charts or graphs.
c. Provide a means of differentiating between data types on the Block Diagram.
d. Separate data objects by data type on the Front Panel.

36. A coercion dot indicates that:

a. The data types are consistent


b. A polymorphic operation will be performed on the data
c. A data buffer is created to handle data conversion
d. Data values are being coerced because they are out of range

37. Which combination of words correctly completes the following statement? Unlike _____
Property Nodes, _____ Property Nodes require _____ as inputs in order to function
correctly.

a. Explicit; Implicit; Data Value References


b. Implicit; Explicit; Data Value References
c. Explicit; Implicit; Control References
d. Implicit; Explicit; Control References

Page 16 of 24
CLAD Sample Exam

38. What is one disadvantage of using the State Machine VI architecture?

a. A State Machine can only traverse states in order


b. If two state changes occur at the same time, only the first state change will be handled
and the second will be lost
c. The diagram becomes significantly larger when changing from a general architecture to
a State Machine
d. State Machines cannot acquire data or use DAQ functions

39. Which combination of words correctly completes the following statement? The
______________ indicates the total number of times the loop will execute and the
_______________ returns the number of times the loop has executed minus one.

a. count terminal, ; conditional terminal,


b. conditional terminal, ; iteration terminal,
c. count terminal, ; iteration terminal
d. conditional terminal, ; count terminal,

40. Which statement best describes a LabVIEW Project (.lvproj) file?

a. A specialized folder that contains all files pertaining to an application


b. A file containing a front panel and block diagram where programming steps can be
implemented
c. A compiled version of code mostly used for final deployment of an application
d. A file that contains references to, and provides organization for all files pertaining to an
application

Page 17 of 24
CLAD Sample Exam

Solutions Page:
Below are the answers and links to additional resources for the CLAD Sample Exam. All of the references listed
are articles in LabVIEW Help. To quickly check your answers, record them on the Answer Sheet, detach the
Answer Sheet, and compare it, side-by side, with the Solutions Page. This answer page is not included in the
actual CLAD exam; it is included here for practice purposes only.

1. Correct Answer: A
Topic: Loops
Justification: The iteration terminal in While Loops and For Loops always starts counting at zero. It
returns 0 on the first iteration, 1 on the second iteration, etc. Since the While Loop is configured to stop
when the output of the iteration terminal is greater than or equal to 50, we know that the iteration
terminal must output a value of at least 50. The first time this happens is after 51 iterations.
References: For Loop and While Loop Structures

2. Correct Answer: A
Topic: Event Structures
Justification: Each possible answer refers to a Value Change event. Value Change events are most
commonly generated from user interaction with the front panel.
References: Available Events, Using Events in LabVIEW

3. Correct Answer: A
Topic: Timing
Justification: The Tick Count (ms) function returns the value of the millisecond timer when it is called.
Calling it twice and taking the difference will yield elapsed time in milliseconds between the calls. In this
code snippet, SubVI is called between the two calls of the Tick Count (ms) function, therefore A is the
correct answer.
References: Case and Sequence Structures, Tick Count (ms) Function

4. Correct Answer: A
Topic: VI Server
Justification: Property Nodes are designed for modifying front panel objects programmatically. Answers
C and D do not make sense because modifying front panel objects is not what variables do. Because we
are not using subVIs, answer A is a better choice than answer B because an implicit Property Node will
work and does not require the extra inputs that the explicit Property Node requires.
References: Controlling Front Panel Objects Programmatically from a SubVI, VI Server Reference

5. Correct Answer: C
Topic: Arrays and Clusters
Justification: For Loops are more efficient at creating arrays than While Loops because For Loops
execute for a predetermined number of iterations. Thus, LabVIEW can allocate the memory to be used
by the array before the For Loop runs.
References: For Loop, VI Memory Usage

Page 18 of 24
CLAD Sample Exam

6. Correct Answer: C
Topic: Timing
Justification: Answers A and B both return values in milliseconds. Since the question specifies
applications that run for extended periods of time, we should choose a function with a larger resolution
to minimize the likelihood that the clock value will wrap around to zero. Furthermore, answer B simly
adds a synchronous delay to code. This would not be efficient for applications running for long periods
of time. It is better to compare the current time to a reference time to see if the correct amount of time
has elapsed. Thus, answer C is the best choice.
References: Tick Count (ms) Function, Timing VIs and Functions

7. Correct Answer: D
Topic: Error Handling
Justification: Even though automatic error handling is enabled, all of the functions have error clusters
wired to their outputs. This prevents LabVIEW from interrupting execution and displaying a dialog to the
user even though an error has occurred. If any of the functions had no error cluster wired to their
outputs, then LabVIEW would display a dialog and suspend execution.
References: Handling Errors

8. Correct Answer: C, D
Topic: Documentation
Justification: A bold input in the Context Help window indicates a Required input. Because of the nature
of Required inputs, the VI will have a broken run arrow if the input is unwired.
References: Setting Required, Recommended, and Optional Inputs and Outputs

9. Correct Answer: A
Topic: Arrays and Clusters
Justification: When given a multidimensional array, the Array Size function will output a 1D array
containing the size of each dimension. The order of arrays is always row first, column second. Thus, the
correct answer is A since there are 2 rows and 3 columns.
References: Array Size Function

10. Correct Answer: A


Topic: File I/O
Justification: A single Boolean value uses one byte of memory in LabVIEW. Answer A is the correct
answer because the Boolean Array to Number converts 8 Boolean values, or 8 bytes, into a single 8-bit
integer value, or 1 Byte. Thus the total amount of data written is 1 byte. Answer B writes 1 byte for each
Boolean value, and answers C and D write strings. Each character in a string uses 1 byte, so answers C
and D each write multiple bytes of data to the file.
References: Flattened Data, Creating Binary Files, How LabVIEW Stores Data in Memory

11. Correct Answer: B


Topic: LabVIEW Environment
Justification: Key Navigation is a property of controls that allows the programmer to assign keyboard
actions to controls. Key Focus is a property that determines if a control is currently selected or not. A
radix is a display component of integer controls which allows the user to select between decimal, binary,
octal, and hexadecimal display. Distribute Objects is a tool for organizing the front panel.
References: Key Navigation Page (Properties Dialog Box)

Page 19 of 24
CLAD Sample Exam

12. Correct Answer: A


Topic: Data Types
Justification: For a given string input, the Replace Substring function replaces the original string starting
at the location specified in offset with the string supplied in the substring input.
References: Replace Substring Function

13. Correct Answer: B


Topic: VI Server
Justification: By passing control references to other VIs, programmers allow SubVIs access to the
properties and methods of objects in the main VI.
References: Controlling Front Panel Objects Programmatically from a SubVI, VI Server Reference

14. Correct Answer: C


Topic: Loops
Justification: Feedback nodes function very similarly to shift registers. In this code snippet, the feedback
node is initialized with a value of 4. It iterates once and the value 4 is added to the value stored in the
feedback node, giving a resulting value of 8.
References: For Loop and While Loop Structures, Feedback Node

15. Correct Answer: C


Topic: LabVIEW Programming Principles
Justification: Utilizing error clusters in subVIs is the best way of enforcing data flow since it also allows
for proper error handling.
References: Handling Errors, Block Diagram Data Flow

16. Correct Answer: C


Topic: Error Handling
Justification: Answers A and B report the error, but do not stop. Answer D stops but does not report the
error. Answer C is the only acceptable option.
References: Handling Errors

17. Correct Answer: B


Topic: LabVIEW Programming Principles
Justification: For loops to run in parallel, there needs to be no data dependency between them. A wire
running from one loop to another makes one loop dependent on the first due to the rules of data flow.
Thus, if a wire is used between the loops, they are no longer in parallel.
References: For Loop and While Loop Structures, Block Diagram Data Flow

18. Correct Answer: B


Topic: Local Variables
Justification: A functional global variable will not work since it does not directly have a means for
manipulating a front panel control. Data Value References do not apply in this situation. Setting the
desired value as default is not a programmatic means of updating the control. Option B is the only
feasible answer.
References: Local Variables, Using Local and Global Variables Carefully

Page 20 of 24
CLAD Sample Exam

19. Correct Answer: A


Topic: Synchronization and Communication
Justification: The main benefit of global variables is their ability to pass data between multiple VIs.
References: Global Variables, Using Local and Global Variables Carefully

20. Correct Answer: A


Topic: Property Nodes
Justification: Property Nodes always execute from top to bottom. Plot 1 is selected and modified first so
it will change color first.
References: Property Node

21. Correct Answer: D


Topic: Charts and Graphs
Justification: Waveform Graphs either accept 2D arrays or a 1D array of clusters containing waveform
data. Waveform Graphs do not accept X and Y data interleaved in a 1D array as answer A suggests.
References: Graphing Waveform Data, Customizing Graphs and Charts

22. Correct Answer: C


Topic: Event Structures
Justification: Notify events simply inform LabVIEW that an event has occurred and been processed.
Filter events allow the user to programmatically decide to discard events.
References: Notify and Filter Events, Using Events in LabVIEW

23. Correct Answer: B


Topic: LabVIEW Programming Principles
Justification: Since the .ctl file was saved as a Control and not a Type Def. or a Strict Type Def., the
change to the file does not update instances of the control.
References: Creating Type Definitions and Strict Type Definitions, Creating Custom Controls, Indicators,
and Type Definitions

24. Correct Answer: C


Topic: Synchronization and Communication
Justification: By default, the Dequeue Element function waits until data is available. It returns when data
becomes available or the queue reference is destroyed. This functionality is important to the
Producer/Consumer design pattern.
References: Dequeue Element Function

25. Correct Answer: C


Topic: Sequence Structures
Justification: Sequence locals store data between frames of Stacked Sequence structures. The sequence
local is only written to in frame 0. Thus frame 1 has no impact on frame 2. The value in Result F2 is 8
times 5, which is 40.
References: Case and Sequence Structures, Adding and Removing Sequence Local Terminals

Page 21 of 24
CLAD Sample Exam

26. Correct Answer: C


Topic: Loops
Justification: Stacked shift registers remember values written for multiple previous iterations. The top
node is the most recent iteration. By looking at the code snippet, it is apparent that four most recent
measurements are being averaged and displayed.
References: For Loop and While Loop Structures, Transferring Values between Loop Iterations

27. Correct Answer: B


Topic: Debugging
Justification: The Probe tool allows the developer to see data in a wire during execution, but it does not
slow down execution at all. Highlight Execution slows down execution and displays the flow of data, and
the Single Stepping tools allow the developer to look into subVIs.
References: Using the Probe Tool, Execution Highlighting

28. Correct Answer: D


Topic: Case Structures
Justification: The Default case executes because the input to the case selector does not fit any of the
other cases. Thus, the answer is 62, or 36.
References: Case and Sequence Structures

29. Correct Answer: B


Topic: Debugging
Justification: Breakpoints cause the VI to pause execution and wait for the developer to decide to start
single-stepping or to unpause the execution.
References: Managing Breakpoints

30. Correct Answer: B


Topic: Arrays and Clusters
Justification: When doing array arithmetic, LabVIEW will force the output to be the size of the smaller
input. In this case, the output will be a 1D array with two elements. The elements are 75-100 and 50-25,
or {-25, 25}.
References: Polymorphic Functions, Subtract Functions, Grouping Data with Arrays and Clusters

31. Correct Answer: D


Topic: Mechanical Action of Booleans
Justification: Windows dialog buttons wait until a user releases before processing the click. When the
user clicks and releases, the button returns to its default state. This behavior is similar to the Latch
When Released mechanical action in LabVIEW.
References: Changing the Mechanical Action of a Boolean Object

32. Correct Answer: C


Topic: Functional Global Variables
Justification: It is not necessary to inline functional global variables into their calling VIs. In fact, inlining
requires that the subVI be reentrant, which is forbidden for functional global variables.
References: Suggestions for Execution Systems and Priorities

Page 22 of 24
CLAD Sample Exam

33. Correct Answer: C


Topic: Charts and Graphs
Justification: Strip charts start plotting from left to right and continue to scroll while plotting. Scope
charts start plotting from left to right and continue until the chart is full. Then the chart is cleared, and
plotting resumes at the left. Sweep charts behave similarly to scope charts, except that once the chart is
full, sweep charts start plotting at the left and progressively overwrite previously plotted data. There is
no such thing as a Step chart in LabVIEW.
References: Customizing Graphs and Charts

34. Correct Answer: C


Topic: Design Patterns
Justification: State machines consist of a While Loop, a Case structure, a shift register, and code for
determining the transition.
References: Creating VIs from Templates, Case Structure

35. Correct Answer: A


Topic: Arrays and Clusters
Justification: Clusters allow grouping of data into structures. This cleans up block diagrams by
minimizing the number of wires and terminals required. Data types may be mixed in clusters.
References: Grouping Data with Arrays and Clusters

36. Correct Answer: C


Topic: Data Types
Justification: Coercion dots indicate that a certain data type is being wired to terminal that accepts a
different but compatible data type. When this happens, LabVIEW converts the data to the larger of the
two data types. This requires the creation of a memory buffer to store the coerced data.
References: Numeric Conversion, Using Wires to Link Block Diagram Objects

37. Correct Answer: D


Topic: Property Nodes
Justification: Implicit Property Nodes are explicitly linked to their owning control or indicator. No
reference wires are needed. Explicit Property Nodes require a reference wire to determine which
control the Property Node is manipulating. Data Value References have nothing to do with Property
Nodes.
References: Property Node, Creating Properties and Methods, Creating Control Reference SubVIs from
Property Nodes and Invoke Nodes

38. Correct Answer: B


Topic: Design Patterns
Justification: A simple state machine has no buffer for maintaining state transitions that may have
occurred during the execution of the previous state, such as a user clicking a front panel button. Thus, if
more than one transition occurs before they can be processed, all but the most recent one will be lost.
References: Synchronization VIs and Functions, Creating VIs from Templates, Case Structure

Page 23 of 24
CLAD Sample Exam

39. Correct Answer: C


Topic: Loops
Justification: The count terminal indicates how many times a For Loop will execute. The Conditional
Terminal for a While Loop may determine how many times the loop executes, but there is no way to
directly tell how many iterations will occur. The iteration terminal returns the number of iterations that
have occurred, minus one.
References: For Loop and While Loop Structures

40. Correct Answer: D


Topic: LabVIEW Environment
Justification: LabVIEW Projects do not own files like folders do. Projects simply organize files that are
part of a common application.
References: Managing a Project in LabVIEW

Page 24 of 24

You might also like